null
预处理器是一种系统软件(设计用于在计算机硬件和应用程序上运行的计算机程序)。它执行高级语言(HLL)的预处理。预处理是语言处理系统的第一步。语言处理系统将高级语言翻译成机器级语言或绝对机器代码(即机器可以理解的形式)。
- 预处理器不知道C的作用域规则。像#define这样的预处理器指令在看到它们后立即生效,并一直有效,直到包含它们的文件结束;程序的块结构无关紧要。
预处理器主要对HLL代码执行三项任务:
- 删除评论: 它会删除所有评论。注释仅为人类理解代码而编写。因此,很明显,它们对机器毫无用处。因此,预处理器会删除所有这些文件,因为它们在执行过程中不需要,也不会被执行。
以下是如何在linux中查看带有删除注释的文件): 编写一个C代码(文件名为 掠夺。c ).使用命令对其进行预处理 gcc-E程序。C
您将看到代码没有注释的输出。
此文件以“”保存。i’扩展名(prog.i),它将被输入到编译器。
- 文件包含: 包括我们程序所需的库中的所有文件。我们在HLL中写作 #包括 这是预处理器的指令,告诉它包含指定的库文件的内容。例如#包括
将告诉预处理器在库文件stdio中包含所有内容。H 这也可以用双引号写#包括“stdio.h” 注: 如果文件名被括在尖括号内,则会在标准编译器包含路径中搜索该文件。如果文件名包含在双引号内,则搜索路径将展开以包括当前源目录。 - 宏 扩展: 宏可以被称为小函数,其处理开销较小。如果我们必须编写一个需要递归(一次又一次)调用的函数(定义很小),那么我们应该更喜欢宏而不是函数。 所以,定义这些宏是由预处理器完成的。
#define SI 1000
是宏的一个简单示例。
- 宏有两种类型:类对象(不接受参数)和类函数(可以接受参数)
// object-like macro #define
// function-like macro #define ( ) - 可以使用#unde删除宏定义:
// delete the macro # undef
- We can write multi-line macro same like function, but each statement ends with “”.
#include <stdio.h>
#define MACRO(num, str) {
printf
(
"%d"
, num);
printf
(
" is"
);
printf
(
" %s number"
, str);
printf
(
""
);
}
- We can write multi-line macro same like function, but each statement ends with “”.
- 宏 扩展: 宏可以被称为小函数,其处理开销较小。如果我们必须编写一个需要递归(一次又一次)调用的函数(定义很小),那么我们应该更喜欢宏而不是函数。 所以,定义这些宏是由预处理器完成的。
本文由 迪克莎 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
- 删除评论: 它会删除所有评论。注释仅为人类理解代码而编写。因此,很明显,它们对机器毫无用处。因此,预处理器会删除所有这些文件,因为它们在执行过程中不需要,也不会被执行。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END