如果程序中同时出现了typedef和#define,编译器会怎么办?

今天看书的时候,无意间写出了这样的程序:

typedef long long LL;
#define LL long long

LL l = 0;

编译了一下,编译器竟然没有报错,我将光标放到LL处, 上面两条定义都会显示。

此时我就纳闷了,编译器究竟用的那一个呢,

想找个验证的方法,正当思考无果的时候,

我脑中泛起了预处理的定义,

其实这样想来便很简单了,

预处理命令总是在程序代码未正式编译前就替换掉了代码中的宏定义关键字,

故,待程序经过预编译后,代码中便没有了LL这样的关键字了,那么tepedef这条语句就再也无用了。

到此,此问题编译通过的缘由基本清楚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值