Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何删除VS警告C4091:';typedef';:在'的左侧忽略;电子表格';当没有声明变量时_C++_Compiler Construction_Struct_Typedef_Warnings - Fatal编程技术网

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;
)。