导航:首页 > 源码编译 > c语言预编译字符串对比

c语言预编译字符串对比

发布时间:2023-06-12 09:34:21

1. C语言如何在预编译阶段比较字符串

#define dprint(expr) printf(#expr"=%d",expr)

int i=j=1;
dprint(i+j);//展开后为 printf("i+j""=%d",expr);

2. c语言,编译、预编译区别

任何一种编程语言的编译都是把代码转换成机器代码认识的格式的过程,而C语言里的预编译则是进行类似转换宏,头文件的代码拷贝,条件语句转换等等基础的转换工作。详细可以看看网络里的内容。

3. c语言编译预处理

编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。

如果用一张图来表示:

读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理

[析] 伪指令主要包括以下四个方面

(1)宏定义指令,如#define Name TokenString,#undef等。对于前一个伪指令,预编译所要做的是将程序中的所有Name用TokenString替换,但作为字符串常量的Name则不被替换。对于后者,则将取消对某个宏的定义,使以后该串的'出现不再被替换。

(2)条件编译指令,如#ifdef,#ifndef,#else,#elif,#endif,等等。这些伪指令的引入使得程序员可以通过定义不同的宏来决定编译程序对哪些代码进行处理。预编译程序将根据有关的文件,将那些不必要的代码过滤掉

(3)头文件包含指令,如#include "FileName"或者#include 等。在头文件中一般用伪指令#define定义了大量的宏(最常见的是字符常量),同时包含有各种外部符号的声明。采用头文件的目的主要是为了使某些定义可以供多个不同的C源程序使用。因为在需要用到这些定义的C源程序中,只需加上一条#include语句即可,而不必再在此文件中将这些定义重复一遍。预编译程序将把头文件中的定义统统都加入到它所产生的输出文件中,以供编译程序对之进行处理。

包含到c源程序中的头文件可以是系统提供的,这些头文件一般被放在/usr/include目录下。在程序中#include它们要使用尖括号(<>)。另外开发人员也可以定义自己的头文件,这些文件一般与c源程序放在同一目录下,此时在#include中要用双引号("")。

(4)特殊符号,预编译程序可以识别一些特殊的符号。例如在源程序中出现的LINE标识将被解释为当前行号(十进制数),FILE则被解释为当前被编译的C源程序的名称。预编译程序对于在源程序中出现的这些串将用合适的值进行替换。

注意:

预编译程序所完成的基本上是对源程序的“替代”工作。经过此种替代,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。这个文件的含义同没有经过预处理的源文件是相同的,但内容有所不同。下一步,此输出文件将作为编译程序的输出而被翻译成为机器指令。

4. C语言预编译命令

<>里面为库文件名
stdio为基本输入输出库,
string为字符串操作库
详细的可以看这个:
http://..com/question/257653832.html

阅读全文

与c语言预编译字符串对比相关的资料

热点内容
程序员被逮捕的判决 浏览:813
android定位获取城市 浏览:599
做服务器客户怎么去找 浏览:997
程序员升职可以干什么 浏览:301
单片机原理课程设计大纲 浏览:909
cad命令大全图表下载 浏览:389
程序员去印度工作 浏览:422
苹果app活动怎么导出 浏览:5
pdf转高清图片 浏览:35
人人玩棋牌源码 浏览:347
如何获取美团服务器时间 浏览:342
php简单加密算法 浏览:795
什么是开服务器 浏览:607
cd4017单片机怎么用 浏览:265
鸟哥pdf 浏览:242
忘记加密的密码了怎么办 浏览:560
好友信息提示音在哪个文件夹 浏览:276
怎么让云服务器转发本地端口 浏览:47
python数组剔除元素 浏览:16
推荐一款解压的手机游戏 浏览:48