【发布时间】:2016-04-30 18:14:04
【问题描述】:
我的头文件包括:
#define PAUSE system("pause");
typedef unsigned char uint8;
static const double PI = 3.14159265358979323846;
static const double oneDegInRads = PI / 180;
我一直在将这个头文件包含在很多 .cpp 文件中,而且没有任何问题。当我想清理我的代码时,我正在修复警告,主要是一些次要的东西,比如“将双精度转换为浮点,可能丢失数据”或“无符号到有符号不匹配”警告。所以我在设置中打开了“将编译器警告视为错误”,这样我就可以严格评估我的代码有多糟糕并相应地修复它。打开它后,我的解决方案将无法构建,并显示错误:
Code Description File
C2220 "Warning treated as error - no 'object' file generated myDefinitions.h
我知道为什么会发生这种情况,因为我打开了该特定设置。我已尝试通过以下方式抑制和禁用此警告:
#pragma warning (disable : 2220)
我还尝试遵循“每个标头规则一个 CPP”,制作“myDefinitions.cpp”并仅包括标头而不包括其他内容,但错误消息仍然出现。
所以我的问题是:
1:我可以有一个没有 .cpp 的头文件(不忽略警告)吗?
2:如果没有,我如何制作我的 .cpp,因为我已经尝试过但失败了?
3:您有什么更好的解决方案可以让您在一个页面中包含您经常使用的所有重要定义?我需要让它们可以包含在任何你想要的地方。
【问题讨论】:
标签: c++ header include compiler-warnings definition