C语言-08-预处理器

C预处理器,C Preprocessor简称CPP。C预处理器不是编译器的一部分,它是一个单独的文本替换工具,指示编译器在实际编译之前需要完成的工作。

常用的预处理器指令

  • #include
    • 包含头文件
  • #define
    • 宏定义
  • #undef
    • 取消宏定义
  • #ifdef
    • 如果定义
  • #ifndef
    • 如果没有定义
  • #if
    • 如果
  • #else
    • 否则
  • #elif
    • 否则如果
  • #endif
    • 结束判断
  • #error
    • 当遇到标准错误时,输出错误信息
  • #pragram
    • 使用标准化方法,向编译器发布特殊的指令到编译器中

ANSI C预定义宏

  • 宏延续运算符
    • ' \ ',定义多行的宏定义

      #define MAX(a, b) \
      a > b ? a : b
      
  • 字符串常量化运算符
    • ‘#’,将一个宏的参数转换成字符串常量

      #define SUM(a, b) \
      printf(#a " + " #b " = %d\n", (a) + (b))
      
  • 标记粘贴运算符
    • ‘##’,在宏定义中将两个独立的标记合并成一个标记

      // 定义
      #define VALUE(v) \
      printf("a%d = %d\n", v, a##v)
      // 使用
      int a1 = 3;
      VALUE(1);
      
  • defined() 运算符
    • 判断一个标识符是否用#define定义过

      #if !defined(DEBUG)
          // TODO:
      #endif
      
  • 常见的预定义宏
    • DATE
      • 当前日期,“MMM DD YYYY”。使用方法:

        printf("Date :%s\n", __DATE__ );
        
    • TIME
      • 当前时间,“HH:MM:SS”

        printf("Time :%s\n", __TIME__ );
        
    • FILE
      • 当前文件名

        printf("File :%s\n", __FILE__ );
        
    • LINE
      • 当前行号

        printf("LINE :%s\n", __LINE__ );
        
    • STDC
      • 当编译器为ANSI标准编译时,则定义为1

        printf("STDC :%s\n", __STDC__ );
        
posted @ 2016-02-16 10:28  世俗孤岛  阅读(340)  评论(0编辑  收藏  举报