C語言邊角料:結(jié)構(gòu)體中指針類型的成員變量,它的類型重要嗎?
時間:2021-10-15 16:24:49
手機看文章
掃描二維碼
隨時隨地手機看文章
[導(dǎo)讀]一、前言二、問題描述三、把類型改為void指針類型四、總結(jié)一、前言昨天在編譯代碼的時候,之前一直O(jiān)K的一個地方,卻突然出現(xiàn)了好幾個Warning!本著強迫癥要消滅一切警告的做法,最終定位到:是結(jié)構(gòu)體內(nèi)部,指向結(jié)構(gòu)體類型的指針成員變量導(dǎo)致的問題。這個問題,也許永遠不會碰到,之所以被...
- 一、前言
- 二、問題描述
- 三、把類型改為 void 指針類型
- 四、總結(jié)
一、前言
昨天在編譯代碼的時候,之前一直O(jiān)K的一個地方,卻突然出現(xiàn)了好幾個 Warning!本著強迫癥要消滅一切警告的做法,最終定位到:是結(jié)構(gòu)體內(nèi)部, 指向結(jié)構(gòu)體類型的指針成員變量導(dǎo)致的問題。這個問題,也許永遠不會碰到,之所以被我趕上了,應(yīng)該是因為某個時候手賤, 誤碰了鍵盤導(dǎo)致。下面一一道來。PS: 我的測試環(huán)境是 Ubuntu16.04-64,編譯器使用系統(tǒng)自帶的 gcc-5.4.0。二、問題描述
1. 正常的代碼
比較簡單:結(jié)構(gòu)體struct _Data2_ 的第 2 個成員變量是一個指針,指向的數(shù)據(jù)類型是結(jié)構(gòu)體 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, 




