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