我正在使用Borland(AKA“Embarcodegearland”)C Builder 2007编译器,它有一个小错误,系统头文件中的某些静态const项可能导致虚假的“xyzzy声明但从未使用过”警告.
我正试图让我的代码100%免费警告,所以想要一种掩盖这些特殊警告的方法(注意 – 但不要只是关闭警告!)
另外,我无法修改头文件.我需要一种“伪造”物品使用的方式,最好不知道它们的类型.
例如,将此函数添加到我的.cpp模块会修复这四个项目的警告,但它似乎有点“特别”.这样做有更好的,更好的自我记录方式吗?
static int fakeUse() { return OneHour + OneMinute + OneSecond + OneMillisecond; }
编辑:亚历克斯建议这样的事情:
#pragma option push #pragma warn -8080 #include "dateutils.hpp" #pragma option pop
…遗憾的是,由于编译器没有巧妙地管理警告状态,因此仍然显示消息.
编辑#2:AshleysBrain有一个很好的建议.我通过构建这样的“dateutils_fix.hpp”头文件来实现它:
#ifndef DATEUTILS_FIXH #define DATEUTILS_FIXH #include <dateutils.hpp> static void FIX_DATEUTIL_WARNINGS() { UNREFERENCED(OneHour); UNREFERENCED(OneMinute); UNREFERENCED(OneSecond); UNREFERENCED(OneMillisecond); } #endif
…然后在我自己的代码中#including这个头而不是dateutils.hpp.