第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

沒有警告,也沒有錯誤?為什么啊

沒有警告,也沒有錯誤?為什么啊

Qyouu 2022-10-02 16:09:12
1 我新建了一個new.uvproj2 其中包括main.c a.c a.h b.c b.h 還有define.h(其中包括數(shù)據(jù)的申明和I/O口的定義)3 我在define.h中定義了一個全局變量extern unsigned int Temperature_Temp;4 這個變量在a.c中用到,所以在a.c中如下定義unsigned int Temperature_Temp;5 在main.c中也要用到這個全局變量,那我還要在這個.c文件中再定義一次?我試過,這樣keil報錯,重復(fù)定義~~~我的問題是:那我在a.c中使用extern定義,即extern unsigned int Temperature_Temp;那按照我的理解:因為已經(jīng)定義為全局變量了,那在main.c中就不需要定義了,這樣理解對不對???實驗結(jié)果:這樣keil雖不報錯,可是出現(xiàn)很多警告!為什么?后來,我在a.c中將其定義為extern unsigned int Temperature_Temp;在main.c中將其定義為unsigned int Temperature_Temp;就可以了(沒有警告,也沒有錯誤),可是,我百思不得其解,求大神指教~
查看完整描述

3 回答

?
楊__羊羊

TA貢獻1943條經(jīng)驗 獲得超7個贊

全局變量區(qū)分靜態(tài)全局變量和全局變量兩種。
1 靜態(tài)全局變量。
有static修飾的變量為靜態(tài)全局變量。需要定義在函數(shù)外,可以在定義位置到本文件結(jié)束部分使用。定義格式為
static type var=init_value;
作用為定義一個類型為type,變量名為var的靜態(tài)全局變量,并賦初始化值為init_value。當(dāng)=init_value部分被省略時,系統(tǒng)自動初始化為0值。
可以用extern擴展可使用空間,聲明格式為
extern type var;
注意不可以有初始化值。
extern聲明只允許出現(xiàn)在本文件內(nèi),聲明后,可以在聲明語句到文件尾使用該變量。

2 全局變量。
沒有static修飾的變量為全局變量。需要定義在函數(shù)外,可以在定義位置到本文件結(jié)束部分直接使用。定義格式為

type var=init_value;
作用為定義一個類型為type,變量名為var的全局變量,并賦初始化值為init_value。當(dāng)=init_value部分被省略時,系統(tǒng)自動初始化為0值。
要在文件其它位置或其它文件中使用時,需要用extern進行聲明,聲明格式為
extern type var;
注意不可以有初始化值。
聲明后,可以在聲明語句到聲明語句所在文件尾使用該變量。也可以寫在頭文件中,這樣在引用該頭文件的C文件中,可以在引用位置到文件結(jié)尾使用該變量。


查看完整回答
反對 回復(fù) 2022-10-06
?
回首憶惘然

TA貢獻1847條經(jīng)驗 獲得超11個贊

全局變量在同一個工程中只能是唯一的,即不能在兩個.c里面定義同名全局變量。
extern只是告訴編譯器這個.c在其他的文件里面聲明了,我這個.c不用聲明這個變量。最后鏈接的時候編譯器會找這個變量的實現(xiàn),如果沒有實現(xiàn),鏈接報錯。
1、在a.c里使用extern定義,只是聲明一下這個變量在其他文件定義,不是真正的定義,所以這樣是錯誤的。

查看完整回答
反對 回復(fù) 2022-10-06
?
Smart貓小萌

TA貢獻1911條經(jīng)驗 獲得超7個贊

extern是聲明外部變量,正如它的英文名字一樣,你可以在其他文件當(dāng)中使用它

查看完整回答
反對 回復(fù) 2022-10-06
  • 3 回答
  • 0 關(guān)注
  • 132 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號