关于结构的警告 C26495
Warning C26495 on structures?
在过去的一二十年里,我一直在使用C#/.NET,但是正在为客户端更新旧的C++/MFC应用程序。我知道自从我上次与C++合作以来,很多事情都发生了变化,但这一次让我感到震惊。
我有以下结构:
typedef struct _FILTERINFO {
int nCustomerID;
CString sCustomerName;
} FILTERINFO, *LPFILTERINFO;
Visual Studio 2019给了我一个警告:
警告 C26495 变量"_FILTERINFO::n客户 ID"未初始化。始终初始化成员变量(类型 .6(。
那么,这里的问题是什么,我将如何初始化变量?如您所见,我没有构造函数。我现在不需要它们作为结构,是吗?
注意:进一步研究这个问题,我看到我的应用程序定义了其他struct
由于某种原因没有收到相同的警告。它似乎特定于大约两三个声明。
删除 typedef,你正在做C++,所以改为写:
struct FILTERINFO
{
int nCustomerID=0;
CString sCustomerName;
};
和
typedef FILTERINFO* LPFILTERINFO;
通常最好不要做指针的typedef,而是使用FILTERINFO*
因为有时在与const
一起使用时会出现意外的行为
相关文章:
- 警告处理为错误这里有什么问题
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- cppcheck在const std::string[]上引发警告
- GCC对可能有效的代码抛出init list生存期警告
- 如何在BST的这个简单递归实现中消除警告
- 关于std::move的使用,是否有编译警告
- g++ 在某个类成员未初始化时不发出警告
- 如何处理来自核心指南检查器的关于gsl::at的静态分析警告
- 使用typeid警告未使用的变量
- 示例C++项目编译中的警告
- 警告:在函数返回类型 [-Wignore 限定符] 时忽略类型限定符
- 如何修复编译器警告 C6386 和 C6385?
- 返回语句后的代码,没有警告
- 获取隐式转换溢出从无符号到已签名的警告
- 编译器警告:执行到达值返回函数的末尾而不返回值
- 在未链接的部分上生成警告
- 警告 C4552:">>":未使用表达式的结果
- 禁止显示由于常量为零而比较始终为假的警告
- 关于结构的警告 C26495
- 警告C26495函数调用从构造函数到初始化变量,原因