gcc编译之预宏定义 -D 相当于所有文件#define

GCC编译时增加宏定义-D<标识符>,相当于#define <标识符>,可以在遇到条件编译时执行。

#ifdef <标识符>
    //条件编译内容
#endif



例子: 搭配gcc编译命令:gcc -DDEBUG -g -o main.out main.c (注意-D<标识符>应该紧跟gcc后面,-o等指令前面)
main.c

#include <stdio.h>
//如果在gcc编译参数中定义了-DDEBUG,就相当于在代码中定义#define DEBUG
//#define DEBUG 
int main(int argc, char *argv[])
{
#ifdef DEBUG
    printf("define DEBUG\n");
#else
    printf("no define DEBUG\n");
#endif
    printf("hello world\n");

    return 0;
}


其实不管是将DEBUG定义为什么,常量、函数等,只要定义过DEBUG,都可以在条件编译时执行
例如:#define DEBUG 0 or #define DEBUG 1 or #define DEBUG(x) x+1 等等,在#ifdef DEBUG判断时都可以通过。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值