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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

關(guān)于暫定定義

關(guān)于暫定定義

C++
千萬里不及你 2019-08-03 03:03:21
關(guān)于暫定定義我從一本關(guān)于暫定定義的書中讀到,暫定定義是沒有存儲(chǔ)類說明符和初始化器的任何外部數(shù)據(jù)聲明。如果到達(dá)翻譯單元的末尾,并且沒有出現(xiàn)帶有標(biāo)識(shí)符初始化器的定義,則暫定定義將成為完整的定義。請(qǐng)解釋上述聲明的含義。另外,宣言和定義之間的區(qū)別是什么?因?yàn)檫@件事我搞混了。:(為什么這個(gè)程序沒有給出一個(gè)錯(cuò)誤:#include <stdio.h>int a;       //Tentative definitionint a;       //similarly this declaration too.int main()   //not getting any error with this code why its so?{     printf("hi");}此外,這個(gè)代碼有什么問題:#include<stdio.h>printf("Hi");int main(void){     return 0;}
查看完整描述

3 回答

?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊

不,這在C中不違法.在您鏈接到的問題(以及鏈接到的答案的問題)中涉及多個(gè)文件。同一文件中的多個(gè)(兼容)暫定定義并不違反。這一問題的違反是因?yàn)?,在翻譯單位的末尾,如果有沒有完全定義的暫定定義,就意味著一個(gè)完整的定義。這加上多個(gè)文件會(huì)導(dǎo)致鏈接時(shí)產(chǎn)生多個(gè)定義(除了跨多個(gè)文件的暫定定義規(guī)則的公共擴(kuò)展外)

查看完整回答
反對(duì) 回復(fù) 2019-08-04
?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊

變量聲明表示,“程序中有一個(gè)具有以下名稱和類型的變量”。

變量定義“親愛的Compiler先生,現(xiàn)在請(qǐng)為一個(gè)變量分配內(nèi)存,其名稱和類型如下?!?/trans>

因此,對(duì)于同一個(gè)變量可以有多個(gè)聲明,但是應(yīng)該只有一個(gè)定義。

在C中,純聲明(也不是定義)前面有關(guān)鍵字extern..因此,由于在第一個(gè)示例中沒有這個(gè)關(guān)鍵字,所以有兩個(gè)定義。表面上看,這似乎是一個(gè)問題(實(shí)際上是C+中的一個(gè)錯(cuò)誤),但是C有一個(gè)特殊的“暫定定義”規(guī)則,它允許對(duì)同一個(gè)變量進(jìn)行多個(gè)定義,只要它們都匹配,最多有一個(gè)初始化器。C編譯器在幕后將所有暫定定義合并到一個(gè)定義中。

如果您試圖初始化這兩個(gè)定義,如下所示:

int a = 1;int a = 2;

那你就犯了個(gè)錯(cuò)誤。

你的第二個(gè)問題更直截了當(dāng)。在C中,您不能在函數(shù)正文之外有可執(zhí)行語句。這是不允許的。想想看:如果允許的話,你希望它什么時(shí)候運(yùn)行?




查看完整回答
反對(duì) 回復(fù) 2019-08-04
?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊


第一種方法之所以有效,是因?yàn)槟鷮?duì)a都是試探性的,只要你認(rèn)為合適,就可以經(jīng)常重復(fù)。在翻譯單元的末尾,還沒有看到非暫定的定義,因此您為屬性指定的內(nèi)容與默認(rèn)設(shè)置相結(jié)合,從而給出了a,因此它將具有外部鏈接、靜態(tài)存儲(chǔ)持續(xù)時(shí)間,并被初始化為0。

第二個(gè)問題與暫定定義無關(guān)。你的printf("Hi");需要在一個(gè)函數(shù)中工作-它不是一個(gè)聲明或定義(試探性的或其他的);它只是不允許的。


查看完整回答
反對(duì) 回復(fù) 2019-08-04
  • 3 回答
  • 0 關(guān)注
  • 508 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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