www问答网
所有问题
c语言中 关于预处理和宏替换是否编译编译
c语言中 宏替换不占用运行时间 只占用编译时间 而刚才看到一句话是 预处理命令在编译之前由与处理程序处理 不能直接对他们进行编译
对于宏替换和预处理有点儿晕了 到底要不要编译呢
举报该问题
其他回答
第1个回答 2011-10-18
宏不会被compiler直接作为代码编译,你可以把它理解为一种编译器处理源代码的方式,比如#define CONST_NUM 10这样,后面代码里所有用CONST_NUM的地方都会在编译时被替换成10这个数,预处理呢,根据你定义的不同宏,比如定义了DEBUG,后面有两大段代码,
#ifdef DEBUG
XXX
#else
XXX
#endif
控制编译器具体去编译代码文件里的那部分代码这样,个人理解,希望能对你有些帮助。
相似回答
C语言编译
系统对
宏替换的处理
是在什么时候进行的
答:
是正式工作开始之前的准备工作,所以宏替换是在对程序编译之前进行的
。宏替换是C/C++的预处理中的一部分,对于宏定义中的形参,在替换列表中,如果不是作为#或##的操作数,那么将对应实参完全展开(相当于对实参进行求值),然后将替换列表中的形参替换掉,如果是#或##的操作数。
宏替换
,宏展开到底分别在什么时候进行?
答:
首先,宏是C编译系统的预处理,何谓“预”?即是正式工作开始之前的准备工作。
所以宏替换是在对程序编译之前进行的
。其次,C程序由源程序变为可执行文件的三个阶段是:预处理阶段,由预处理器对程序文本中的宏进行展开。编译阶段,由编译器对经过预处理后的程序进行编译,并生成目标文件 链接阶段,则链...
c语言编译预处理
答:
读取
c
源程序,对其中的伪指令(以#开头的指令)和特殊符号进行
处理
[析] 伪指令主要包括以下四个方面 (1)宏定义指令,如#define Name TokenString,#undef等。对于前一个伪指令,
预编译
所要做的是将程序中的所有Name用TokenString
替换
,但作为字符串常量的Name则不被替换。对于后者,则将取消对某个
宏的
...
c语言中
一定要
编译
吗?
答:
c语言中一定要编译
。现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器,GCC同样适用于微软的Windows。GCC是自由软件过程发展中的著名例子,由自由软件基金会以GPL协议发布。链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一...
C语言
四个过程:
预处理
,
编译
,汇编,链接,分别进行了什么过程?别度娘...
答:
- 主要是一些
宏替换
,头文件导入 2.
编译
对
预处理
后的代码进行翻译工作,得到计算机 所认识的格式编译工作得到的结果文件叫做目标文件,扩展名是.o(编译得到汇编文件(.s) ->经过汇编后得到.o目标文件)3.链接 把所有的目标文件和其他必要的文件合并在一起 得到最终的可执行文件 ...
宏替换
是在程序
编译
时完成
的
,不占用程序运行时间
答:
是正确的,
编译
时
预处理
,不分配内存空间
c语言的编译
过程是什么
答:
c语言的编译
过程如下:1、
预处理
:预处理过程实际上是处理“#”的过程:#include包含的头文件直接拷贝到hello.c中;#define定义的宏定义进行
替换
,同时删除代码中没有的注释部分。2、编译:编译的过程实质上是将高级语言翻译成机器语言的过程。3、汇编:汇编器是将汇编代码转变成机器可以执行的命令,每一...
C语言编译预处理的
问题
答:
等都是属于
预编译处理
,其作用是用来解释程序中用到的一些关键字或函数,如cin、cout等都在iostream中得到解释,像数学函数sin、tan、sqrt、abs等就在头文件math中得到解释,在标准C++中,还要与名称空间相配合,如要使用cout,只有#include<iostream>还不够,还要有 using namespace std;如下程序:includ...
C的预处理
命令都是哪些?
答:
C语言中
,所有预处理命令都是以“#”号开头的。C语言程序设计预处理的概念:在
编译
之前进行的处理。
C语言的预处理
主要有三个方面的内容:宏定义、文件包含、条件编译。
大家正在搜
c语言的编译预处理
c语言编译预处理命令
c语言的编译预处理功能主要包括
C语言中什么是预处理
编译预处理是什么意思
c语言预处理命令以什么开头
c语言三种预处理功能
c语言预处理命令作用
C语言预处理命令