怎樣定義和聲明全局變量和函數(shù)最好?

2023-02-18 13:02

1個(gè)回答
首先, 盡管一個(gè)全局變量或函數(shù)可以 (在多個(gè)編譯單元中) 有多處 “聲明”, 但是 “定義” 卻只能允許出現(xiàn)一次。定義是分配空間并賦初值 (如果有) 的聲明。最好的安排是在某個(gè)相關(guān)的 .c 文件中定義, 然后在頭文件 (.h) 中進(jìn)行外部聲明, 在需要使用的時(shí)候, 只要包含對應(yīng)的頭文件即可。定義變量的 .c 文件也應(yīng)該包含該頭文件, 以便編譯器檢查定義和聲明的一致性。這條規(guī)則提供了高度的可移植性: 它和 ANSI C 標(biāo)準(zhǔn)一致, 同時(shí)也兼容大多數(shù) ANSI 前的編譯器和連接器。Unix 編譯器和連接器通常使用 “通用模式” 允許多重定義, 只要保證最多對一處進(jìn)行初始化就可以了; ANSI C 標(biāo)準(zhǔn)稱這種行為為“公共擴(kuò)展”, 沒有語帶雙關(guān)的意思。可以使用預(yù)處理技巧來使類似
DEFINE(int, i);
的語句在一個(gè)頭文件中只出現(xiàn)一次, 然后根據(jù)某個(gè)宏的設(shè)定在需要的時(shí)候轉(zhuǎn)化成定義或聲明。但不清楚這樣的麻煩是否值得。
如果希望讓編譯器檢查聲明的一致性, 一定要把全局聲明放到頭文件中。特別是, 永遠(yuǎn)不要把外部函數(shù)的原型放到 .c 文件中: 通常它與定義的一致性不能得到檢查, 而矛盾的原型比不用還糟糕。
相關(guān)問答
質(zhì)量保函該怎么寫啊
2個(gè)回答2022-11-27 17:44
  范文如下:   質(zhì)量保函,也稱為“維修保函”,是指應(yīng)供貨方或承建人申請,向買方或業(yè)主保證,如貨物或工程的質(zhì)量不符合合同約定而賣方或承建人又不能依約更換或修理時(shí),按買方或業(yè)主的索賠予以賠...
全文
向量函數(shù)和復(fù)變函數(shù) 我們研究復(fù)變函數(shù)的,本質(zhì)還是把復(fù)數(shù)看做一個(gè)個(gè)向量來研究的,再研究復(fù)變函數(shù)時(shí)也是
2個(gè)回答2023-01-08 21:22
區(qū)別還是有的,比如在復(fù)平面上的乘法計(jì)算可以通過復(fù)向量旋轉(zhuǎn)實(shí)現(xiàn),二維向量不能這么干
無窮小量是什么?是0還是一列數(shù)還是函數(shù)?
1個(gè)回答2022-11-25 09:45
無窮小量是極限為零的變量,可以是函數(shù),也可以是數(shù)列或其它對象。常數(shù)0看做變量,即看做一個(gè)總是0的變量,也可是無窮小量。但無窮小量不是0,是變化趨勢為0的變量。 一個(gè)有界量與無窮小量的乘積是無窮小量,其...
全文
成人專升本函授和業(yè)余有區(qū)別嗎。含金量一樣嗎,
1個(gè)回答2022-12-19 23:08
都沒什么含金量
函姝函姝函姝函姝函姝函姝函姝函姝函姝函姝函姝函姝我愛你
3個(gè)回答2022-05-15 18:03
這么強(qiáng)烈,支持你!
業(yè)余和函授哪個(gè)含金量高
2個(gè)回答2023-05-03 06:40
函授最簡單,就入學(xué)一次考試,畢業(yè)一次考試,中間根本不用去,而且是理論課開卷考試,所以教的也就是理論課。業(yè)余聽著很業(yè)余實(shí)際意思是利用業(yè)余時(shí)間去學(xué)校面對面學(xué)習(xí),是利用業(yè)余時(shí)間去學(xué)校學(xué)習(xí)每周要去二到三次甚至...
全文
四變量的邏輯函數(shù) 最小項(xiàng)有幾個(gè)
2個(gè)回答2023-02-14 23:47
16個(gè)。 不論幾變量,都有:變量數(shù)n, 最小項(xiàng)個(gè)數(shù)2^n個(gè)
指數(shù)函數(shù)的反函數(shù)是什么?
1個(gè)回答2024-09-02 02:54
指數(shù)函數(shù)的反函數(shù)是對數(shù)函數(shù)。 對數(shù)函數(shù)的一般形式為y=logax,它實(shí)際上就是指數(shù)函數(shù)的反函數(shù)(圖象關(guān)于直線y=x對稱的兩函數(shù)互為反函數(shù)),可表示為x=a^y。 因此指數(shù)函數(shù)里對于a存在規(guī)定...
全文
函數(shù)和一次函數(shù)的來源故事?
1個(gè)回答2024-03-07 14:23
“函數(shù)”一詞最初是由德國的數(shù)學(xué)家萊布尼茨在17世紀(jì)首先采用的,當(dāng)時(shí)萊布尼茨用“函數(shù)”這一詞來表示變量x的冪,即x2,x3,….接下來萊布尼茨又將“函數(shù)”這一詞用來表示曲線上的橫坐標(biāo)、縱坐標(biāo)、切線...
全文
函授和成人高考哪個(gè)含金量高?
2個(gè)回答2022-12-21 20:58
函授和成人高考的含金量是一樣的,函授是一種教育方式,也是成人高考的一種,所以說這兩個(gè)含金量都是一樣的。都是非全日制的本科,比全日制本科認(rèn)可度低點(diǎn)。
熱門問答