不允许使用不完整的类型C/C++(70)
时间: 2023-09-27 18:08:54 浏览: 760
Imperfect c++
5星 · 资源好评率100%
不完整类型指的是未定义完整的结构体、联合体、枚举等类型。使用不完整类型会导致编译错误,因为编译器无法确定它们的大小和布局。因此,在使用这些类型之前必须先定义它们。
C和C++标准都规定了不允许使用不完整类型,因为这会导致未定义的行为。为了避免这种情况,应该在使用不完整类型之前先定义它们。可以通过前置声明来解决这个问题,前置声明只是声明了类型的名称,但没有定义它们的详细内容。例如,可以使用如下方式声明一个结构体:
```
struct my_struct;
```
然后在使用该结构体的地方,需要先定义它的详细内容。例如:
```
struct my_struct {
int x;
int y;
};
```
这样就可以安全地使用该结构体了。同时,也可以使用指向不完整类型的指针或引用,因为它们只需要知道类型的名称即可。
总之,使用不完整类型是一种不好的编程习惯,应该尽可能避免使用。
阅读全文