C++知识总结(20)

来源:互联网 发布:相机滤镜软件下载 编辑:程序博客网 时间:2024/06/07 14:17

96编译型语言和解释语言的区别

关于编译型语言解释性语言的区别
编译型是一次性编译成二进制(都是变成二进制),以后用时不用再编译了
解释性语言是边编译边执行,根据执行规则(脚本语言规则)来告诉计算机要作什么

97 程序由源文件到可执行文件经过哪几步?分别做些什么

1.编辑:也就是编写C/C++程序。

2.预处理:相当于根据预处理指令组装新的C/C++程序。经过预处理,会产生一个没有宏定义,没有条件编译指令,没有特殊符号的输出文件,这个文件的含义同原本的文件无异,只是内容上有所不同。

3.编译:将预处理完的文件进行一系列词法分析、语法分析、语义分析及优化后,产生相应的汇编代码文件。

4.链接:通过链接器将一个个目标文件(或许还会有库文件)链接在一起生成一个完整的可执行程序。链接程序的主要工作就是将有关的目标文件彼此相连接,也就是将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的这些目标文件成为一个能够被操作系统装入执行的统一整体。在此过程中会发现被调用的函数未被定义。


98 程序由源文件到可执行文件经过哪几步?分别做些什么

1.编辑:也就是编写C/C++程序。

2.预处理:相当于根据预处理指令组装新的C/C++程序。经过预处理,会产生一个没有宏定义,没有条件编译指令,没有特殊符号的输出文件,这个文件的含义同原本的文件无异,只是内容上有所不同。

3.编译:将预处理完的文件进行一系列词法分析、语法分析、语义分析及优化后,产生相应的汇编代码文件。

4.链接:通过链接器将一个个目标文件(或许还会有库文件)链接在一起生成一个完整的可执行程序。 链接程序的主要工作就是将有关的目标文件彼此相连接,也就是将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的这些目标文件成为一个能够被操作系统装入执行的统一整体。在此过程中会发现被调用的函数未被定义。

 

99 什么是预编译?何时需要预编译

预编译又称为预处理 , 是做些代码文本的替换工作。 
处理以# 开头的指令 , 比如拷贝 #include 包含的文件代码,#define宏定义的替换 , 条件编译等,就是为编译做的预备工作的阶段。

主要处理#开始的预编译指令,预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。

C 编译系统在对程序进行通常的编译之前,首先进行预处理。 
c 提供的预处理功能主要有以下三种:

1 )宏定义  
2 )文件包含  
3 )条件编译 
何时需要预编译:

总是使用不经常改动的大型代码体。 
程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头

 

100. C++程序中调用被C编译器遍以后的函数,为什么要加“extern C”

C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与c语言的不同。

原创粉丝点击