当前位置: 首页 > news >正文

C 语言报错 xxx incomplete type xxx

一般原因就是使用结构体的代码没有定义结构体。

举个例子,你有两个 .h 文件:

a.h

struct a {int x;int y;
};

b.h

struct b {int z;struct a *ap;
}; 

这里 b.h 使用了 a.h 里定义的结构体。

假设你现在有个 test.c 文件

#include <b.h>...
// 使用了 struct a 
... 

那么由于没有 #include <a.h>,就会报错 “xxx incomplete type xxx”

或者换一种情况,include 头文件的顺序不对

#include <b.h>
#include <a.h>...
// 使用了 struct a 
... 

根据经验,通常也会报错 “xxx incomplete type xxx”,这次发生在 b.h 里。

需要调换顺序,先 include a.h 再 include b.h,才能编译成功

http://www.xdnf.cn/news/394165.html

相关文章:

  • CTFd CSRF 校验模块解读
  • 表加字段如何不停机
  • NCCL N卡通信机制
  • 《Effective Python》第1章 Pythonic 思维详解——始终用括号包裹单元素元组
  • 用一张网记住局域网核心概念:从拓扑结构到传输介质的具象化理解
  • 懒人美食帮SpringBoot订餐系统开发实现
  • Linux网络编程day9 libevent库
  • 代码随想录算法训练营第60期第三十二天打卡
  • RAII是什么?
  • 大学之大:东京工业大学2025.5.11
  • 误差函数(Error Function)的推导与物理意义
  • 【电机控制器】PY32MD310K18U7TR——ADC、UART
  • AAAI-2025 | 电子科大类比推理助力精准识别!SPAR:基于自提示类比推理的无人机目标探测技术
  • Java 线程池原理
  • 解决stm32HAL库使用vscode打开,识别不到头文件及uint8_t等问题
  • LOJ 6346 线段树:关于时间 Solution
  • 假如你的项目是springboot+vue怎么解决跨域问题
  • Anaconda环境中conda与pip命令的区别
  • Java--图书管理系统(简易版)
  • 信息安全管理与评估索引
  • 02.three官方示例+编辑器+AI快速学习webgl_animation_skinning_blending
  • C++类和对象--初阶
  • 英伟达微调qwen2.5-32B模型,开源推理模型:OpenCodeReasoning-Nemotron-32B
  • 关于 js:6. 网络与加密模块
  • JUC并发编程(上)
  • suricata之规则去重
  • 力扣刷题(第二十三天)
  • LLMs之MCP:2025年5月2日,Anthropic 宣布 Claude 重大更新:集成功能上线,研究能力大幅提升
  • 关于在使用getOutputStream()方法后续没有用到write()
  • 普通IT的股票交易成长史--20250511 美元与美股强相关性