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(行数)

      

  • 相关阅读:
    jquery跨域3
    juery的跨域请求2
    jquery的跨域请求
    synchronized与Lock的区别
    springboot之启动原理解析及源码阅读
    java中Number类理解
    springboot中配置文件application.properties的理解
    restTemplate设置访问超时
    BigDecimal.setScale 处理java小数点
    NIO之FileChannel类的理解和使用
  • 原文地址:https://www.cnblogs.com/BANLOONG/p/10442359.html
Copyright © 2011-2022 走看看