代码::块有一个令人惊讶的缺点-它的编辑器无法正确解析多个源文件以正确突出显示ifdef样式的代码路径它只适用于直接在其中定义宏的文件,而不适用于任何其他相关的项目文件例如:
我的头.h

#define MRAA__

我的程序.c
#include "MyHeader.h"
#ifndef MRAA__
#define FOO() Foo_Bcm2835()
#else
#define FOO() Foo_Mraa()
#endif

虽然在头文件中定义了MRAA,但ifndef MRAA的计算结果为true现在编译器可以很好地处理这个问题,但是在编辑器中是错误的。
是的,你可以完全关闭灰显,但这是一个非常方便的功能有左右真的没有插件/补丁来修复这个功能吗2012年我可能会发现有人抱怨。
c - 代码::块未解析头文件#define-LMLPHP

最佳答案

这篇文章并不是作为一个回答,只是一个澄清。
包含一个图像以突出显示
最初的帖子,希望引起Code::Blocks的注意
开发人员到一个existing bug registered at least 5 years ago-and similar
到今天为止,我还不知道有任何修补程序,修正或修订来解决这个问题。。。
以下图像是在代码::Blocks version 13.12中捕获的
并说明了OP语法突出显示问题(注:
OP版本更高:16.01)
尽管Code::Blocks(和GCC)只正确执行“true”
ifdef(或ifndef)指令的分支,语法突出显示
在任何文件中定义的符号,而不是正在使用的符号。
例如,在.c文件以外的文件中定义了MRAA,
在这里使用时,ifdef的“true”分支将变灰。
但是对于此文件中定义的ABCD\uu,将灰显“false”分支。
c - 代码::块未解析头文件#define-LMLPHP

关于c - 代码::块未解析头文件#define,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47308777/

10-14 09:10
查看更多