2020年3月24日 补充点其他的,B站所见所闻
c/c++
c++ = C结构化编程+面向对象+模板库(STL) 泛型编程 == c++
c++开发需要学习操作系统,平台APIs
Ring3应用程序使用,Ring0操作系统使用
CPU环数 Rang0,1,2,3
Ring3应用程序级别
Ring0驱动程序级别
编译器:
Visual C++ 微软VC(vs系列)
Linux:gcc/g++
世界上第一个操作系统使用汇编语言开发的,Unix ,作者:丹尼斯.里奇
世界上第一个用高级语言编写的操作系统,Unix。
C语言之父就是Unix之父==丹尼斯.里奇
Linux仿Unix:1.Dibin(Ubuntu).2.RedHat(Centos)
Unix、Linux、Mac:/目录/文件
Windows: C:\目录\目录\文件.扩展名
GNUC 、GNUC_MINOR 、__GNUC_PATCHLEVEL__分别代表gcc的主版本号,次版本号,修正版本号。__GNUC_PATCHLEVEL__是从gcc 3.0以后才有的,在这之前的gcc是没有预定义这个宏的。我们可以用gcc --version来查看自己系统中的gcc版本,现在的gcc版本普遍都是3.0以后了吧,就我的系统而言,是4.9.2,那么对应的__GNUC__就是4,__GNUC_MINOR__就是9,__GNUC_PATCHLEVEL__就是2
C代码.c文件通过gcc首先转化为汇编.S文件,之后汇编器as将.S文件转化为机器代码.o文件,生成的.o文件再与其它.o文件,或者之前提到的libc.so.6库文件通过ld链接器链接在一块生成可执行文件
关于__cplusplus
这是一个c++预定义宏
c++ 98中,是199711
c++ 11中,是201103
c++ 14中,是201402