zoukankan      html  css  js  c++  java
  • 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(行数)

      

  • 相关阅读:
    springmvc乱码问题
    51nod 还是01串
    51nod 1276 岛屿的数量
    poj 2486 a apple tree
    hdu 1011 Starship Troopers
    poj 1155 TELE
    hdu 4586 Play the Dice
    hdu 5023 A Corrupt Mayor's Performance Art(线段树水题)
    Appleman and Tree
    hdu 4003
  • 原文地址:https://www.cnblogs.com/BANLOONG/p/10442359.html
Copyright © 2011-2022 走看看