使用编译器来使用宏变量

刚学了一招,可以使用编译器的-D选项来定义程序中使用的宏。

#include <stdio.h>
int main(int argc, char **argv)
{
    #ifdef MY_MAC
    printf("Hello -D.\n");
    #else 
    printf("MY_MAC was not defined.\n");
    #endif
    return 0;
}


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

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

执行结果:

【】$ ./dtest 
Hello -D.
【】$
无掉-D选项,重新编译,执行结果:

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

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

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

看看修改后的代码:

#include <stdio.h>
int main(int argc, char **argv)
{
    #ifdef MY_MAC
    printf("Hello -D. %d\n", MY_MAC);
    #else 
    printf("MY_MAC was not defined.\n");
    #endif
    return 0;
}

我输出了宏代表的值。

在终端执行一下命令:

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

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

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


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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值