zoukankan      html  css  js  c++  java
  • 关于预编译处理的尝试

    今天在看K60的库文件的时候对于一些代码不理解就自己建立了一个小的测试代码,上代码

    #include<stdio.h>
    #define CW
    
    #if defined (IAR)
    const int a=
    #elif defined (CW)
    const int b=
    #endif
    3;
    void main(void)
    {
    printf("a=%d",a);
    printf("b=%d",b);
    }

    这是一个很简单的测试代码,如果是上面的代码编译会出错,说a没有定义,有人会说我a定义了啊。。。。这时候预处理的作用就上来了,在代码中我define了CW那么在代码编译的时候就只会运行const int b=3;这一行代码显然a没有定义,那是对的。。。。,还有一个让我们疑惑的地方就是在b和3之间还有一个endif会报错了,一开始我的疑惑就在这里,但是经过自己编代码尝试是不会的,反过来想想这也是对的,因为在预编译处理的时候那些#endif之类的只是告诉编译器一些信息,所以是没有作用的,这句真的代码就只是 const int b=3;

  • 相关阅读:
    乘法DAC一点知识
    #4 判断字符串是否为整数
    #3 不使用循环输出1到100
    #2 判断一个字符串是否包含重复字符
    #22 结语
    #1 组成互不相同且不重复的三位数
    #21 Python异常
    #19 re&jieba模块
    2020国庆正睿笔记
    2019正睿csp-s赛前冲刺
  • 原文地址:https://www.cnblogs.com/51mcu/p/3133782.html
Copyright © 2011-2022 走看看