linux gcc-error: dereferencing pointer to incomplete type

本文介绍了在使用Linux gcc编译器时遇到的一个典型错误:“dereferencing pointer to incomplete type”。作者通过排查发现,该问题是由于缺少必要的头文件包含导致的。文章详细讲述了如何定位并解决问题的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       首先要说的是,从开始使用C开发到现在,一直使用支持C99标准及以上的编译器,而linux上的gcc编译器默认是C90标准,最容易搞乱的就是C90不支持混合编写- 不允许混合使用声明和代码,这点很痛苦大哭,唉言归正传,今天修改代码,make的时候竟然报错:

        error: dereferencing pointer to incomplete type 

        着实让我郁闷了好一会,因为平时window底层开发和linux都要修改,作为跨平台工程习惯在windows下修改好直接拷贝粘贴到linux端(一般不推荐,因为VS的文件编码和linux上不同,且window下的换行符和linux平台的文件结尾符不同,很容易搞得代码运行异常,摸不着头脑,或辛苦修改的代码由于编码问题无法保存),在VS编译器中访问的结构体指针变量,没有报错,F12也可以访问定义,就这样加完了,TMD竟然报错了,瞬间头疼了,什么鬼东西-引用指针类型不完整,明明VS可以访问啊!

        看了头文件我蒙了,竟然没有该结构体定义得头文件引用,我真是屮艸芔,VS坑了我!

        该问题一般原因为,找不到该指针类型的定义,include 引入相应类型的头文件定义即可!!!!!!!!

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值