预处理文件查看、Qt关键字与宏处理

如何查看代码预处理结果:

写了宏或宏函数,但是不知道是否达到预期,或者编译出现问题,直接从宏查看很难解决,怎么办?

  • 对于VS而言,可以将 “项目属性 -> 项目配置 -> C/C++ -> 预处理器 -> 预处理到文件” 选项设置为 “是”,如下:
    在这里插入图片描述
    然后重新生成后,会在目录下生成 .i 文件 ,打开查找使用宏的地方即可。
    在这里插入图片描述
    注意:打开此选项的情况下,是连接不过的,会报错,将此选项改回去,重新编译即可。

  • 对于 gcc 或 g++,使用 -E参数

gcc -E test.c -o test.i
g++ -E test.c -o test.i
arm-himix200-linux-gcc -E test.c -o test.i
arm-himix200-linux-g++ -E test.c -o test.i

查看 test.i 即可。

Qt关键字与宏处理:

如何在Qt代码里边使用Qt关键字呢?比如我需要在宏里边使用 signals 、slots 、emit 等关键字。

实际上应该是不可能用宏实现的,为什么呢?Qt编译的时候,使用 qmake 先处理代码,qmake处理时又会调用rcc、moc、uic等进行处理。signals、slots、emit 等关键字应该是 moc 使用的,在处理完成后这些关键字就不存在了,qmake处理完成后,就是标准c++代码,可用于g++、msvc等编译器编译。

编译器编译时进行预处理,这时候才会处理宏,关键字会被替换为头文件中定义的值,一般都定义为空,所以整个处理完后,这些关键字不再存在,也不会是信号或槽,就是一般函数了,所以无法用此方法实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值