专门做产品排名的网站,im聊天软件开发,有什么网站做头像,南宁网络推广软件C 预处理指令C语言、C 语言的预处理器。用于在编译器处理程序之前预扫描源代码#xff0c;完成头文件的包含, 宏扩展, 条件编译, 行控制#xff08;line control#xff09;等操作编译的四个阶段C语言标准规定#xff0c;预处理是指前4个编译阶段#xff08;phases of tra… C 预处理指令C语言、C 语言的预处理器。用于在编译器处理程序之前预扫描源代码完成头文件的包含, 宏扩展, 条件编译, 行控制line control等操作编译的四个阶段C语言标准规定预处理是指前4个编译阶段phases of translation。三字符组与双字符组的替换行拼接Line splicing: 把物理源码行Physical source line中的换行符转义字符处理为普通的换行符从而把源程序处理为逻辑行的顺序集合。单词化Tokenization: 处理每行的空白、注释等使每行成为token的顺序集。扩展宏与预处理指令directive处理.包含头文件#include 条件编译#if VERBOSE 2print(trace message);
#endif#ifdef __unix__ /* __unix__ is usually defined by compilers targeting Unix systems */
# include
#elif defined _WIN32 /* _WIN32 is usually defined by compilers targeting 32 or 64 bit Windows systems */
# include
#endif#if !(defined __LP64__ || defined __LLP64__) || defined _WIN32 !defined _WIN64// we are compiling for a 32-bit system
#else// we are compiling for a 64-bit system
#endif宏定义与扩展类似对象的宏无参数的宏- 类似函数的宏带参数的宏在第一个标识符与左括号之间绝不能有空格。#define // object-like macro/replacement token list
#define () // function-like macro, note parameters/replacement token list#undef // delete the macro来源维基百科特殊宏与指令FILE__ 与 __LINE, 扩展为当前文件与行号。例如:// debugging macros so we can pin down message origin at a glance
#define WHERESTR [file %s, line %d]:
#define WHEREARG __FILE__, __LINE__
#define DEBUGPRINT2(...) fprintf(stderr, __VA_ARGS__)
#define DEBUGPRINT(_fmt, ...) DEBUGPRINT2(WHERESTR _fmt, WHEREARG, __VA_ARGS__)
//...DEBUGPRINT(hey, x%d\n, x);
C或C 语言标准定义了宏 __STDC__, __STDC_VERSION__, __cplusplus,__DATE__,__TIME__,__func__等。常见预处理指令#空指令//无任何效果
#include //包含一个源代码文件
#define //定义宏
#undef //取消已定义的宏
#if //如果给定条件为真则编译下面代码
#ifdef //如果宏已经定义则编译下面代码
#ifndef //如果宏没有定义则编译下面代码
#elif //如果前面的#if给定条件不为真当前条件为真则编译下面代码
#endif //结束一个#if……#else条件编译块
#error //停止编译并显示错误信息
声明本文于网络整理版权归原作者所有如来源信息有误或侵犯权益请联系我们删除或授权事宜。