Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2359219
  • 博文数量: 527
  • 博客积分: 10343
  • 博客等级: 上将
  • 技术积分: 5565
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-26 23:05
文章分类

全部博文(527)

文章存档

2014年(4)

2012年(13)

2011年(19)

2010年(91)

2009年(136)

2008年(142)

2007年(80)

2006年(29)

2005年(13)

我的朋友

分类: WINDOWS

2009-03-13 23:32:11

如果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) |
给主人留下些什么吧!~~