程序员应如何理解标准库

本文探讨了C/C++标准库的实现和使用,解释了编程语言的标准是如何制定的,以及标准库如何依赖操作系统提供的功能。在Linux上,标准库主要由glibc实现,而在Windows上,早期是MSVCRT.DLL,现在则是UCRTBASE.DLL。标准库的使用通过链接器将库打包到可执行程序中,程序员在编写代码时通常会默认链接标准库。

记得当年在学了C/C++语言后一直有这样的疑惑,常用的printf函数以及C++中的cout函数到底是在哪里实现的

相信不止我有这个疑问,这篇文章就来回答这个问题。

 

C/C++语言是怎样实现的

相信有的同学一定觉得编程语言是十分神秘的,实际上不是这样的。

一门编程语言的本质是什么?

本质上一门语言不过就是一堆规则(rules)而已,就像汉语中的主谓宾一样,就像

  • if之后必须是一个括号(),这个括号中必须是一个bool表达式

  • while之后必须是一个括号(),这个括号中必须是一个bool表达式

  • continue语言必须出现在while语句中

  • 等等

有的同学可能会问,为什么一定要有这堆规则呢?原来,只有有了规则之后编译器才能知道该怎么处理我们写的程序。

编译器在遇到if后就知道,接下来紧跟的一定是一个左括号,之后一定是一个bool表达式,再之后一定是一个右括号。

如果我们写的程序不满足这样的规则,结果就是编译器开始抱怨编译错误(compile error)。

让我们回到主题,实际上C/C++以及任何一门编程语言都是这样的一堆规则,对于C/C++来说,每年都有一群来自被称为International Organization for Standardization (ISO)组织的人来制定C/C++语言的规则,因此这群人坐下来讨论的这堆规则实际上就是一个标准,每一次讨论都会重新修改制定新的标准并对外发布,这就是为什么C/C++有各种版本:C99, C11, C++03, C++11, C++14等等,其中的数字其实就是来自制定标准的年份。

对外发布的标准中包含两部分内容:

  1. C/C++支持哪些特性

  2. <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值