[英]How can I remove the VS warning C4091: 'typedef ' : ignored on left of 'SPREADSHEET' when no variable is declared
我的代码中通过相同的声明多次触发此警告,其内容如下:
// 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;
}
};
我不想只是关掉那个警告,
而是更改代码,以便警告不会出现!
注意:我不想在这里声明任何变量(它是一个头文件),只定义结构'SPREADSHEET'应包含的内容......
删除typedef
。 这是声明结构的C方式,C ++会自动为您完成。
您需要在终止之前添加一些标识符;
,例如:
typedef struct BLAH { ... } BLAH;
只需删除“ typedef
”即可。 您声明了一个新结构,并且不使用typedef
关键字。 您可以使用typedef
为现有类型定义新名称,如下所示:
typedef int number;
是的,关闭括号后的BLAH
对于使typedef
成为有效的很重要。 您可以从当前位置删除SPREADSHEET
并将其保存在}
和;
之间;
。
我对此警告的解释是编译器指示typedef
关键字是不必要的,因为未声明变量。 因此,如果代码的意图是简单地声明一个struct
那么typedef
是多余的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.