加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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文件

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读