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;

  • 相关阅读:
    equals标准写法
    抽象类的概述
    多态的弊端
    多态
    final关键字
    java 静态代码块 构造块 构造方法
    java 工具类
    逻辑运算符&&和&的区别 ||和|的区别
    react-route
    跨域
  • 原文地址:https://www.cnblogs.com/51mcu/p/3133782.html
Copyright © 2011-2022 走看看