Linux学习---条件预处理的应用

预处理的使用:

  ⑴包含头文件  #include 

  ⑵宏定义  #define     替换,不进行语法检查

    ①常量宏定义:#define 宏名 (宏体) (加括号为防止不进行语法检查而出现的错误)

      eg:#define ABC 5+3

        printf(""the %d ,ABC*5);  //5+3*5  只进行替换,进行语法见检查,一般加括号来防止出现上述问题。

      eg:#define ABC (5+3)

     ②函数宏定义: #define ABC(X)  (5+(x))    //X的括号也应该加上,原因同上。

  ⑶ 条件预处理:

    #ifdef  #else  #endif

    eg:

 1 #include <stdio.h>
 2 
 3 int main (){
 4     
 5 #ifdef    ABC        //检查是否有ABC该宏定义。 有即为真,无为假。 
 6     printf("sssss");
 7 #endif
 8     
 9     return 0;
10 } 

  注:有两种方法解决:一为添加宏定义ABC

            二为编译时添加-D命令进行处理:gcc -DABC  等同于在文件内声明:#define ABC.

  ⑷预定义宏

    ①__FUNCTION__  //函数名

    ②__LINE__    //行号

    ③__FILE__    //文件名

    eg:

1 #include <stdio.h>
2 
3 int main (){
4         printf("%s,%s,%d
",__FUNCTION__,__FILE__,__LINE__)  ;
5 }
6 //输出结果为:main(所在函数名),当前文件名,4(行数)

  

原文地址:https://www.cnblogs.com/BANLOONG/p/10442359.html