c – 有没有办法在make命令中找到未使用的定义和结构
发布时间:2020-12-16 07:05:12 所属栏目:百科 来源:网络整理
导读:我有一个庞大的项目,我正在重新分解,有很多我正在更改为枚举的定义语句,定义我也在更改为常见文件中的const变量. 当我重新分解时,我发现一些定义在子类头中重复. 一些定义,结构甚至没有使用或习惯. 如何让编译器指出它们,就像编译器显示未使用的变量一样?
我有一个庞大的项目,我正在重新分解,有很多我正在更改为枚举的定义语句,定义我也在更改为常见文件中的const变量.
当我重新分解时,我发现一些定义在子类头中重复. 如何让编译器指出它们,就像编译器显示未使用的变量一样? 我想骑他们, 现在我将它们评论出来,并手动找到需要的东西!还有其他方法吗? 解决方法
我讨厌在一个大的.h文件中使用#define.所以,我找到了一种用C型系统来定义内含物的方法.这是我两年前的工作.
------------------------------------------------------ id_system.h ------------------------------------------------------ #pragma once template<int N> struct ID_FACTORY{ enum {_ID=N}; static const unsigned int m_duplicate_checker; }; #define ID_DECLARE(classname,number) struct classname{ typedef ID_FACTORY<number> MYID_TYPE; static const unsigned int ID; }; ------------------------------------------------------ a.h ------------------------------------------------------ #pragma once #include "id_system.h" ID_DECLARE(WM_MESSAGE_JJ,1003) ID_DECLARE(WM_MESSAGE_KK,1002) ------------------------------------------------------ b.h ------------------------------------------------------ #pragma once #include "id_system.h" ID_DECLARE(WM_MESSAGE_PP,2013) ID_DECLARE(WM_MESSAGE_TT,2014) ID_DECLARE(WM_MESSAGE_VV,2015) ------------------------------------------------------ id_system.cpp ------------------------------------------------------ #define ID_CHECKER(classname) const unsigned int classname::MYID_TYPE::m_duplicate_checker=classname::MYID_TYPE::_ID; const unsigned int classname::ID = classname::MYID_TYPE::m_duplicate_checker; #include "a.h" #include "b.h" ID_CHECKER(WM_MESSAGE_KK) ID_CHECKER(WM_MESSAGE_JJ) ID_CHECKER(WM_MESSAGE_PP) ID_CHECKER(WM_MESSAGE_TT) ID_CHECKER(WM_MESSAGE_VV) ------------------------------------------------------ main.cpp ------------------------------------------------------ #include "a.h" void main(){ int x = WM_MESSAGE_KK::ID; int y = WM_MESSAGE_JJ::ID; } 优点:1)它可以检测重复的id2)客户端代码(如main.cpp)不需要包含大的.h文件.3)编译时间大大减少到最小的依赖.h文件 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- swift错误 Command /Applications/Xcode.app/Contents/Deve
- c# – IndexOf在列表中太慢.更快的解决方案?
- .NET错误:找不到依赖关系“Microsoft.Office.Interop.Exce
- c# – 使用AutoIncrement插入
- c# – Html Agility Pack – 删除元素,但不删除innerHtml
- c – SFINAE:static_assert vs std :: enable_if
- Java正则表达式提取字符的方法实例
- 使用Ruby 1.9.3的OpenSSL问题
- ruby-on-rails – 进行客户端验证的rails方式(带有simple_f
- ruby-on-rails – 嵌套表单 – 无法批量分配受保护的属性