c语言错误重定义,C语言的重定义错误求解
追問
那如果要用到全局變量,要把它寫在C文件中?
那全局變量的主要作用其實(shí)就是跨文件作用域來傳遞一些東西,寫在C文件中,不太好在別的文件中引用吧。
用的時(shí)候?qū)慹xtern進(jìn)去?
感覺全局變量在C里用起來比較麻煩,有時(shí)候很順手就會在頭文件中寫一些全局變量定義,然后到用的時(shí)候發(fā)現(xiàn)各種連接錯(cuò)誤。
想知道有沒有比較標(biāo)準(zhǔn)的處理全局變量的方式?感覺它用起來特麻煩。
按照順手的方式去寫,寫完了就錯(cuò)了。追答
全局變量是不推薦使用的,盡量使用局部變量,這可以使錯(cuò)誤局部化。
當(dāng)必須使用全局變量時(shí):
1.如果全局變量只在某個(gè)實(shí)現(xiàn)文件中發(fā)揮作用,則全局變量應(yīng)該定義在該實(shí)現(xiàn)文件,并且為static變量,以此將該變量作用于限定為該文件。
2.如果全局變量被多個(gè)實(shí)現(xiàn)文件中使用,則可以將全局變量聲明放在頭文件中,并將定義單獨(dú)放在一個(gè)實(shí)現(xiàn)文件中,以后其他需要這個(gè)全局變量的實(shí)現(xiàn)文件只需包含這個(gè)頭文件即可直接使用。
聲明全局變量的語法:
extern類型變量名;
定義全局變量的語法:
類型變量名[=初始式];
extern類型變量名=初始式;
標(biāo)準(zhǔn)的頭文件一般只包括:
1.結(jié)構(gòu)體等復(fù)合結(jié)構(gòu)定義
2.函數(shù)聲明
3.常量宏
全局變量是不推薦使用的,盡量使用局部變量,這可以使錯(cuò)誤局部化。
當(dāng)必須使用全局變量時(shí):
1.如果全局變量只在某個(gè)實(shí)現(xiàn)文件中發(fā)揮作用,則全局變量應(yīng)該定義在該實(shí)現(xiàn)文件,并且為static變量,以此將該變量作用于限定為該文件。
2.如果全局變量被多個(gè)實(shí)現(xiàn)文件中使用,則可以將全局變量聲明放在頭文件中,并將定義單獨(dú)放在一個(gè)實(shí)現(xiàn)文件中,以后其他需要這個(gè)全局變量的實(shí)現(xiàn)文件只需包含這個(gè)頭文件即可直接使用。
聲明全局變量的語法:
extern類型變量名;
定義全局變量的語法:
類型變量名[=初始式];
extern類型變量名=初始式;
標(biāo)準(zhǔn)的頭文件一般只包括:
1.結(jié)構(gòu)體等復(fù)合結(jié)構(gòu)定義
2.函數(shù)聲明
3.常量宏
總結(jié)
以上是生活随笔為你收集整理的c语言错误重定义,C语言的重定义错误求解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux iso合并,把RedHat
- 下一篇: c语言程序整数四则运算,c语言中三个整数