我隱約記得幾年前曾讀過(guò)有關(guān)此內(nèi)容的文章,但在網(wǎng)上找不到任何參考。您能否舉一個(gè)NULL宏未擴(kuò)展為0的示例?編輯清晰:今天,它擴(kuò)展為((void *)0),(0)或(0L)。但是,有些架構(gòu)早已被人遺忘,但事實(shí)并非如此,而NULL擴(kuò)展到了另一個(gè)地址。就像是#ifdef UNIVAC #define NULL (0xffff)#endif我正在尋找這種機(jī)器的示例。更新以解決問(wèn)題:在當(dāng)前標(biāo)準(zhǔn)的背景下,我并不是要提出這個(gè)問(wèn)題,也不是要用我不正確的術(shù)語(yǔ)來(lái)煩擾人們。但是,我的假設(shè)已被接受的答案所證實(shí):后來(lái)的模型使用[blah],顯然是對(duì)所有現(xiàn)存的編寫不正確的C代碼的一個(gè)遺憾。有關(guān)當(dāng)前標(biāo)準(zhǔn)中的空指針的討論,請(qǐng)參見(jiàn)此問(wèn)題。
3 回答

犯罪嫌疑人X
TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
很久以前,當(dāng)它被鍵入為as ((void*)0)
或其他特定于機(jī)器的方式時(shí),該機(jī)器沒(méi)有使用全零位模式。
一些平臺(tái)(某些CDC或霍尼韋爾機(jī))具有用于NULL(即,不同的比特模式未全零)雖然ISO / ANSI固定的C90被批準(zhǔn)之前,通過(guò)指定0
是在源代碼中的正確NULL指針,無(wú)論的底層位模式。從C11 6.3.2.3 Pointers /4
(盡管,如前所述,該措辭一直追溯到C90):
具有值的整數(shù)常量表達(dá)式
0
(或轉(zhuǎn)換為type的表達(dá)式void *
)稱為空指針常量。
- 3 回答
- 0 關(guān)注
- 412 瀏覽
添加回答
舉報(bào)
0/150
提交
取消