不允许使用不完整的类型C/C++(70)
时间: 2023-09-27 15:08:54 浏览: 430
不完整类型指的是未定义完整的结构体、联合体、枚举等类型。使用不完整类型会导致编译错误,因为编译器无法确定它们的大小和布局。因此,在使用这些类型之前必须先定义它们。
C和C++标准都规定了不允许使用不完整类型,因为这会导致未定义的行为。为了避免这种情况,应该在使用不完整类型之前先定义它们。可以通过前置声明来解决这个问题,前置声明只是声明了类型的名称,但没有定义它们的详细内容。例如,可以使用如下方式声明一个结构体:
```
struct my_struct;
```
然后在使用该结构体的地方,需要先定义它的详细内容。例如:
```
struct my_struct {
int x;
int y;
};
```
这样就可以安全地使用该结构体了。同时,也可以使用指向不完整类型的指针或引用,因为它们只需要知道类型的名称即可。
总之,使用不完整类型是一种不好的编程习惯,应该尽可能避免使用。
相关问题
不允许使用不完整类型c语言
在 C 语言中,不完整类型是指在声明时没有完全指定类型的类型,例如:
```c
struct Node; // 不完整的结构体类型
struct Node* createNode(); // 返回不完整结构体类型的指针
```
在这种情况下,编译器并不知道结构体的具体内容,因此无法对结构体进行操作。因此,在使用不完整类型时,需要保证在使用之前,必须要完整地定义类型。
如果你使用的是 C++,可以使用前向声明来避免这个问题,但在 C 语言中,前向声明并不允许。因此,如果你需要使用结构体或其他类型,必须先完整地定义它们,然后才能在程序中使用它们。
C++ 不允许指针指向不完整的类类型
C语言不允许指针指向不完整的类类型。这个问题通常有两个原因。首先,可能是因为没有包含对应结构体的头文件。解决办法是直接添加相应的头文件。另外,可能是因为对应的结构体定义写在了C/CPP文件中而不是头文件中。解决办法是将结构体定义写在对应的头文件中。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [不允许指针指向不完整的类类型](https://blog.csdn.net/weixin_43793181/article/details/119388240)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [Qt错误:不允许指针指向不完整的类类型](https://blog.csdn.net/kevin_lp/article/details/124900439)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [Java自学视频教程-JavaSE基础-配套资料-day02-数据类型、运算符、API介绍、键盘录入.rar](https://download.csdn.net/download/weixin_54787054/88246647)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)