C++ 结构上的警告C26495?
在过去的十年或二十年中,我一直在使用C#/.NET,但我正在为客户机更新一个旧的C++/MFC应用程序。我知道自从我上次和C++一起工作以来,有很多改变,但这一点让我很失望。 我的结构如下:C++ 结构上的警告C26495?,c++,visual-studio,C++,Visual Studio,在过去的十年或二十年中,我一直在使用C#/.NET,但我正在为客户机更新一个旧的C++/MFC应用程序。我知道自从我上次和C++一起工作以来,有很多改变,但这一点让我很失望。 我的结构如下: typedef struct _FILTERINFO { int nCustomerID; CString sCustomerName; } FILTERINFO, *LPFILTERINFO; Visual Studio 2019给了我一个警告: 警告C26495变量“\u FILTER
typedef struct _FILTERINFO {
int nCustomerID;
CString sCustomerName;
} FILTERINFO, *LPFILTERINFO;
Visual Studio 2019给了我一个警告:
警告C26495变量“\u FILTERINFO::ncCustomerId”未初始化。始终初始化成员变量(类型.6)
那么,这里的问题是什么?如何初始化变量?正如你所看到的,我没有构造函数。我现在不需要它们来建造建筑,是吗
注意:进一步研究,我发现我的应用程序定义了其他
struct
,但由于某些原因没有得到相同的警告。它似乎是特定于两个或三个声明。删除TyBufff,您正在做C++,因此,写:
struct FILTERINFO
{
int nCustomerID=0;
CString sCustomerName;
};
及
之后,如果您需要指针,尽管我个人不喜欢它,但我更喜欢写出
FILTERINFO*
您可以说int-nCustomerID=0struct
定义中的code>,将使用@CoryKramer:感谢您的响应。但是代码什么时候执行?谢谢,我理解你建议的更改。代码非常古老。但这样做似乎不会删除警告。奇怪的是,如果删除了,您仍然会收到关于_filternfo的警告。。也许你在别的地方还有其他声明?也许是在另一个名称空间中?单击该警告会将我带到该行。所以我不确定这是怎么回事。另外,我注意到我的应用程序中定义了其他struct
s,但它们没有得到此警告。只有两三个。非常奇怪。请尝试搜索结构,有时intellisense毫无意义:)如果您使用的是预编译头,那么删除这些头可能是明智之举
typedef FILTERINFO* LPFILTERINFO;