2013-10-21 24 views
2

ANSI C標準的6.3.2.2節的約束部包括短語:類型的不合格版本

每個參數應具有這樣的類型,它的值可以被分配給一個對象與不合格版本的相應參數的類型。


那麼,'非限定版本類型'是什麼意思?

回答

4

C99的草案包括下列語言,關於這個詞的使用「合格」的:

到目前爲止提到任何類型是不合格的類型。每個不合格類型都有幾個 合格版本,對應於const,volatilerestrict限定符中的一個,兩個或全部 三個的組合。

類型的合格或不合格版本是屬於相同類型類別且具有相同表示和對齊要求的不同類型。

所以你的引證說,有一個參數一個const int必須等int類型的值相匹配,和。

+0

'const int * i; int j;我=';'現在,你的意思是'我'指向'j'的合格版本嗎? – silentboy

3

如果不打算檢查規範,我會猜測它與例如constvolatile關鍵字。例如,如果您有const int類型的參數,則應該可以將其分配給類型爲int(不含const限定符)的變量。

+0

const'int * i; int j;我=';'現在,你是不是指''我指向'j'的合格版本? – silentboy

+1

@silentboy沒有其他的方式,指針'* i'是const限定的,而'j'是不合格的。 –

+0

我也是這個意思。對不起,我的英語不好。謝謝 – silentboy

相關問題