C语言边角料:结构体中指针类型的成员变量,它的类型重要吗?
时间:2021-10-15 16:24:49
手机看文章
扫描二维码
随时随地手机看文章
[导读]一、前言二、问题描述三、把类型改为void指针类型四、总结一、前言昨天在编译代码的时候,之前一直OK的一个地方,却突然出现了好几个Warning!本着强迫症要消灭一切警告的做法,最终定位到:是结构体内部,指向结构体类型的指针成员变量导致的问题。这个问题,也许永远不会碰到,之所以被...
- 一、前言
- 二、问题描述
- 三、把类型改为 void 指针类型
- 四、总结
一、前言
昨天在编译代码的时候,之前一直OK的一个地方,却突然出现了好几个 Warning!本着强迫症要消灭一切警告的做法,最终定位到:是结构体内部, 指向结构体类型的指针成员变量导致的问题。这个问题,也许永远不会碰到,之所以被我赶上了,应该是因为某个时候手贱, 误碰了键盘导致。下面一一道来。PS: 我的测试环境是 Ubuntu16.04-64,编译器使用系统自带的 gcc-5.4.0。二、问题描述
1. 正常的代码
比较简单:结构体struct _Data2_
的第 2 个成员变量是一个指针,指向的数据类型是结构体 struct _Data1_
。typedef struct _Data1_
{
int a;
}Data1;
typedef struct _Data2_
{
int b;
struct _Data1_ *next;
}Data2;
int main()
{
Data1 d1 = {1};
Data2 d2 = {2,