首页 > 解决方案 > 这两个结构声明有什么区别?

问题描述

我对来自不同教程的这两种结构感到困惑:

typedef struct complex {
    float real;
    float imag;
} COMPLEX;

typedef struct {
    float real;
    float imag;
} COMPLEX;

COMPLEX c1;

他们都正确吗?为什么?是否有必要complex在结构之前添加小写?一般情况是什么?

标签: c++cstructdeclarationtypedef

解决方案


对于第一个,您可以使用 type-aliasCOMPLEXstruct complex.

第二个你有一个匿名结构,只能与 type-alias 一起使用COMPLEX

话虽如此,在 C++ 中,任何结构名称也是类型名称,可以直接用作类型:

struct complex { ... };
complex c1;

推荐阅读