C++ 如何删除VS警告C4091:';typedef';:在'的左侧忽略;电子表格';当没有声明变量时
在我的代码中,同一声明多次触发此警告,其内容如下:C++ 如何删除VS警告C4091:';typedef';:在'的左侧忽略;电子表格';当没有声明变量时,c++,compiler-construction,struct,typedef,warnings,C++,Compiler Construction,Struct,Typedef,Warnings,在我的代码中,同一声明多次触发此警告,其内容如下: // Spreadsheet structure typedef struct SPREADSHEET { int ID; // ID of the spreadsheet UINT nLines; // Number of lines void CopyFrom(const SPREADSHEET* src) {
// Spreadsheet structure
typedef struct SPREADSHEET
{
int ID; // ID of the spreadsheet
UINT nLines; // Number of lines
void CopyFrom(const SPREADSHEET* src)
{
ID = src->ID;
nLines = src->nLines;
}
};
我不想关掉那个警告
而是更改代码,这样警告就不会出现了
注意:我不想在这里声明任何变量(它是一个头文件),只定义结构“电子表格”应包含的内容…在终止
之前需要添加一些标识符代码>,例如:
typedef struct BLAH { ... } BLAH;
删除typedef
。这是声明结构的C方式,C++自动为您执行。< P>只删除“<代码> TyPulf< /Calp>”。您声明了一个新结构,而typedef
关键字不用于该结构。您可以使用typedef
为现有类型定义新名称,如下所示:
typedef int number;
是的,右大括号后的BLAH
对于使typedef
有效非常重要。您可以从当前位置删除电子表格
,并将其保持在}
和之间
我对该警告的解释是,编译器指示不需要typedef
关键字,因为没有声明变量。因此,如果代码的意图是简单地声明一个struct
,typedef
是多余的 这应该作为评论,请通过提问和回答问题来赢得所需的声誉,并查看.d=(◕‿↼ ) 在我们的例子中,我们没有typedef
开始(MSVC 2010
),但是在终止;
之前添加一个带有标识符的,这样做了(比如MY_EXPORT\u宏typedef struct MY_TYPE{…}MY_TYPE;
)。