zoukankan      html  css  js  c++  java
  • 使用编译器来使用宏变量

    原文链接:http://www.cppblog.com/jialisoft/archive/2012/10/04/192742.html

    1. #include <stdio.h>  
    2. int main(int argc, char **argv)  
    3. {  
    4.     #ifdef MY_MAC  
    5.     printf("Hello -D.\n");  
    6.     #else   
    7.     printf("MY_MAC was not defined.\n");  
    8.     #endif  
    9.     return 0;  
    10. }  



    上面的代码中使用了MY_MAC宏,

    【】$g++ -DMY_MAC -o dtest dtest.c

    执行结果:

    1. 【】$ ./dtest   
    2. Hello -D.  
    3. 【】$  

    无掉-D选项,重新编译,执行结果:

    1. 【】$ g++ ./dtest.c -o dtest  
    2. 【】$ ./dtest   
    3. MY_MAC was not defined.  


    我们可以利用编译器这个选项来调试我们的程序奥。

    如果我的宏代表一个常量怎么办呢??

    看看修改后的代码:

    1. #include <stdio.h>  
    2. int main(int argc, char **argv)  
    3. {  
    4.     #ifdef MY_MAC  
    5.     printf("Hello -D. %d\n", MY_MAC);  
    6.     #else   
    7.     printf("MY_MAC was not defined.\n");  
    8.     #endif  
    9.     return 0;  
    10. }  


    我输出了宏代表的值。

    在终端执行一下命令:

    1. 【】$ g++ -DMY_MAC=5 ./dtest.c -o dtest  
    2. 【】$ ./dtest   
    3. Hello -D. 5  
    4. 【】$  

    如果程序中有多个宏可以这样编译

    1. 【】$g++ -DMAC1=5 -DMAC2=6 soucefile.c  

    ^_^,,很兴奋是吧??这样我们就不用在代码里修改宏变量了。。

  • 相关阅读:
    mongo 索引
    nginx gzip配置
    vim 命令
    Mongo小结
    阿里云ECS服务器连接MongoDB
    python 解析Excel
    Django之数据库--ORM
    sql语句
    关于Django的序列化问题。serializers
    MongoEngine模块
  • 原文地址:https://www.cnblogs.com/wangkangluo1/p/2713511.html
Copyright © 2011-2022 走看看