zoukankan      html  css  js  c++  java
  • 预编译指令包括:宏定义;条件编译;文件包含(就是include)

    预处理指令
    1. 翻译成0跟1之前执行的指令;有宏定义;条件编译;文件包含(就是include)
    2. 预处理指令在什么时候执行:在代码翻译成0和1之前执行;
    3. 预处理指令的位置是随便写的;但是是有作用域的;从编写指令的那一行代码开始,一直到文件结尾;

    1.宏定义可以带参数也可以不带参数;

    不带参数

    1. #define是宏定义的开头;所有的预处理指令都是以#开头;
    2. 宏定义的格式:#define 宏名 值;宏名一般写大写或者以K开头;变量名一般写小写;
    3. #define COUNT 6
    4. 表示在编译之前对代码全部过一遍;在双引号里面的COUNT不会被替换;
    5. #undef COUNT表示对COUNT取消,那么开始就失效,下面无法使用;
    6. .

    带参数的宏名;

    1. #define sum(v1,v2) v1+v2
    2. 可以直接调用int c = sum(a,b);宏的作用就是把左边的东西转成右边的东西;
    3. 即int c= sum(a,b) =a+b;int c = sum(2,3)*sum(6,4)如果不加括号结果是24,因为int c = sum(2,3)*sum(6,4)=2+3*6+4=24;正确写法:int c =( sum(2,3))*(sum(6,4))
    4. 只做替换工作,不做运算;
    5. 一般是每个参数都有括号;而且结果值也要加上括号;
    6. #define pingfang(a) ((a)*(a))
    7. 带参数的宏定义,参数和结果值都要加小括号;
    条件编译
    1. #if
    2. 条件编译,一般是判断宏的值;
    3. #define A 5    #if(A == 10) printf("");#elif(A=5) printf("");#else printf('");#endif return 0;
    4. #endif一定要写;这个作用是表示后面的代码和条件编译没有关系;表示条件编译结束;
    文件包含
    1. <>表示系统自带的文件;“”表示自定义的文件;
    2. 不能循环包含;不允许你包含我,我包含你;
    3. 函数的定义不可以写多次;但函数的声明可以多次写;程序不会报错;
    4. #ifndef ABC         #define ABC 54354   int sum(int a,int b);         #endif
    5. 最好以文件名为宏名;
    6. 一个文件有一个宏名;可以保证每一个头文件不被执行多次;

  • 相关阅读:
    Python reportlab table 设置cellstyle枚举,设置单元格padding
    代理工具 v2ra*的使用
    python 开发环境需要安装
    postgres 新增或者更新语句
    python psycopg2 查询结果返回字典类型
    postgres 多个字段匹配查询
    django 执行原生sql形参传递,字段参数传递
    亚马逊接口调用
    python x 开头的字符转码为中文
    postgres 定义变量
  • 原文地址:https://www.cnblogs.com/williamliuwen/p/5367558.html
Copyright © 2011-2022 走看看