C++ 预处理器

C++ 支持如下的预处理指令:#include、#define、#if、#else、#line等。

#define 宏定义 指令的一般形式为:

   #define macro-name replacement-text

函数宏

   可以使用#define来定义一个带有参数的宏。

   #define MIN(a, b) ((a) < (b)) ? a: b)

  

条件编译

   #ifndef NULL

     #define NULL 0

  #endif

  

# 和 ## 预处理运算符

   #运算符会把replacement-text令牌转换为用引号引起来的字符串。

   #define MKSTR( x)  #x

  ## 运算符用于链接两个令牌。

   #define CONCAT(X, Y) X ## Y

 

c++ 中的预处理宏

C++提供了一些预定义宏:

   __LINE__  编译时包含当前行号

  __FILE__   编译时包含当前文件名

  __DATE__ 包含一个形式为month/day/year的字符串,它表示把源文件转换为目标代码的日期

  __TIME__ 包含一个形式为hour:minutes:second的字符串,它表示程序被编译的时间。

 

#line 指令告诉预处理器将编译器内部存储的行号和文件名更改为给定行号和文件名

printf("assertion error line %d, file(%s)\n", __LINE__, __FILE__);

 

posted @ 2019-02-24 21:49  ssk_mark  阅读(168)  评论(0)    收藏  举报