C++系列: 标准库的初步介绍

目录

1.C语言和C++的关系

2. C++对C库的兼容性

3. C++库的简单介绍

4.最后


1.C语言和C++的关系

C++是C语言的一个超集,也就是说C语言有的,C++都有,而C++有的,C语言未必就有。

同时,g++能编译C++文件,同样也能编译C语言文件。

C程序可以通过 __cplusplus来判断编译器是gcc还是g++,__cplusplus的值是long int类型,记录C++编译器的版本号。

情况一:使用gcc编译C程序

#include <stdio.h>

int main()
{
	printf("%ld.\n", __cplusplus);

	return 0;
}

实验结果

表明,gcc编译器无法识别 __cpluscplus符号。

 

情况二:使用g++编译C程序

#include <stdio.h>

int main()
{
	printf("%ld.\n", __cplusplus);

	return 0;
}

实验结果

__cplusplus打印出来的是c++的版本号,并且是被g++编译器所定义。

 

2. C++对C库的兼容性

首先找一下C++库的位置在哪。

在ubuntu下,C++库的位置在 /usr/include/c++,之后就是库的版本号。

C语言最常用的 stdio.h, 对应c++的是 cstdio(注意,没有后缀)。

vim打开cstdio,探究一下它有什么特点。

首先,一上来它就将stdio.h给包含进来,所以,我们就不用操心用不着printf。

继续往下看。

这说明了什么?stdio.h的符号在 C++看来,都是定义在默认命名空间里。

为了使得原本C库的符号变成更有C++的“味道”,C++的设计者将这些符号包含在一个 std的命名空间里。

为啥要这样做啊?不是说cstdio是兼容stdio.h吗?这就是兼容啊,将c++的特性兼容在C语言上,统一标准。c++其它的库也是类似的定义,它们都有自己的命名空间。

一定要记住,命名空间的作用就是解决命名冲突。

 

所以,得出了什么结论

C++更建议的头文件不是<stdio.h>,而是<cstdio>。类似的还有<cstring>头文件

 

3. C++库的简单介绍

首先,C++常见三种类型的库:C++标准库,C++面向对象库,还有C++ STL标准模板库

  • C++标准库是完全继承C语言库,并且以C++的方式重新,位于std命名空间;
  • C++面向对象库,如string,iostream等,位于std命名空间;
  • C++ STL标准模板库,如vector, map等,位于std命名空间。

4.最后

学好了C++的库,学好了C++。越是高级的语言就越依赖这门语言的库,如python、java。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值