如果VS中的 Goto Definition一定好用, 根本不需要这一功能.
如果知道所有include目录, 不在乎跑一下 grep -r 也不需要这一功能.
完全是利用pc-lint 无微不至的错误/警告信息
lint.bat +e"*" test.cpp
打开所有警告
一.
如果怀疑一个宏是函数式宏, 只需要以非函数方式使用它, 然后调用 pc-lint, 会得到这样的信息:
Error 123: Macro 'LOG_MACRO' defined with arguments at line 5, file test.h -- this is just a warning
大致是说LOG_MACRO 被定义成一个带参数的宏, 而你以不带参数的形式在使用它.
有个例外, 如果LOG_MACRO定义成了
#define LOG_MACRO(...)
的形式那么什么参数不跟也是合法的.
二 如果怀疑宏是不带参数的宏
不幸的是, 故意以带参数的形式使用它并不会输出关于在哪里定义的信息.
test.h 中定义
#define LOG
test.cpp 中使用
LOG(xx);
Error 129: declaration expected, identifier 'xx' ignored
阅读(2148) | 评论(0) | 转发(0) |