原文链接: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  

 

 

 

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

相关文章:

  • 2022-12-23
  • 2021-07-03
  • 2021-12-26
  • 2022-12-23
  • 2021-04-08
  • 2021-05-20
  • 2021-10-25
猜你喜欢
  • 2021-05-17
  • 2022-01-09
  • 2022-12-23
  • 2021-06-25
  • 2021-12-05
  • 2021-10-23
  • 2021-06-12
相关资源
相似解决方案