编译预处理 -- 带参数的宏定义--【原创】

简介:
如有转载请注明出处
 
编译预处理  --  带参数的宏定义
前面为输出文件,后面为输入文件

gcc -E -o test.i test.c

gcc -o test  test.i
 
test.c
 
test.i
 
 
 
取消宏定义
#undef 宏名
 
条件编译的三种形式
 
 
第三种
#if 常量表达式
  源码1.....
#else // 此部分可选
  源码2...
#endif
 
#----表示ABC(a) 即为 a这个字符串
 
 
 
##的用法
 
A_B(print_, menu)
 
等价为  print_menu()
 
 
__DATE__ 进行预处理的日期,注意是两个下划线喔,(“Mmm dd yyyy”形式的字符串文字)
 
__FILE__ 代表当前源码文件名的字符串文字
__LINE__ 代表当前源代码中的行号的整数常量
__TIME__源码文件的编译时间,格式为: "hh: mm: ss"
__func__ 当前所在函数名
 
test.c
 
test.i
 
欢迎交流

新浪博客:http://blog.sina.com.cn/u/2049150530
csdn博客:http://blog.csdn.net/u011749143
博客园:http://www.cnblogs.com/sky-heaven/
知乎:http://www.zhihu.com/people/zhang-bing-hua















本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sky-heaven/p/4138483.html,如需转载请自行联系原作者


相关文章
|
6月前
|
编译器 Linux C语言
预处理详解(#和##运算符、命名约定、#undef​​、命令行定义​、条件编译、头文件的包含​)
预处理详解(#和##运算符、命名约定、#undef​​、命令行定义​、条件编译、头文件的包含​)
|
6月前
|
C语言
gcc的简易用法(编译、参数与链接)
【5月更文挑战第14天】gcc的简易用法(编译、参数与链接)。
60 1
|
6月前
|
存储 程序员 编译器
C语言进阶⑳(程序环境和预处理)(#define定义宏+编译+文件包含)(上)
C语言进阶⑳(程序环境和预处理)(#define定义宏+编译+文件包含)
52 0
|
6月前
|
自然语言处理 编译器 Linux
C语言进阶⑳(程序环境和预处理)(#define定义宏+编译+文件包含)(下)
C语言进阶⑳(程序环境和预处理)(#define定义宏+编译+文件包含)
63 0
|
6月前
|
程序员 编译器 C语言
C语言进阶⑳(程序环境和预处理)(#define定义宏+编译+文件包含)(中)
C语言进阶⑳(程序环境和预处理)(#define定义宏+编译+文件包含)
41 0
|
C++
汇编--C++/c返回值代码分析
汇编--C++/c返回值代码分析
56 0
|
C++
汇编 -- c++/c 多函数调用
汇编 -- c++/c 多函数调用
45 0
|
存储 自然语言处理 编译器
程序编译和链接的过程/预处理符号和用法【C语言】
程序编译和链接的过程/预处理符号和用法【C语言】
73 0
|
编译器 Linux C语言
C语言 | 预处理知识详解 #预处理指令有哪些?他们如何使用?宏和函数有哪些区别?...#
C语言 | 预处理知识详解 #预处理指令有哪些?他们如何使用?宏和函数有哪些区别?...#