2016-01-03 130 views
3

我正在尋找C11標準中的可變參數函數的描述,但我發現的唯一信息幾乎沒有提到這個話題。有人能告訴我參考關於它們的所有可以在其中找到的主題嗎?在哪裏描述C標準的可變參數函數?

什麼,我發現自己迄今在§6.9.1.8:

如果接受的參數個數可變而不與省略號符號結尾的參數類型列表定義 的功能, 行爲是未定義的。

並在§7.16中描述了<stdarg.h>頭文件。但是我非常懷疑這是關於標準中可變參數功能的所有信息。

+0

還有一些與此有關的段落。基本上,在參數列表中爲'...'傳遞的參數被視爲沒有原型定義的函數(即應用默認參數促銷)。但更多不是真的需要指定可變參數列表。 – fuz

+0

你當然需要''來消耗可變參數。 –

+3

C11草案標準,'6.7.6.3函數聲明符(包括原型)'? – EOF

回答

5

隨着你所指出的章節中,我會建議從C11標準,這對功能的一些詳細信息,聲明符檢查章§6.7.6.3。總之,

  • 可變參數的函數聲明:章§6.7.6.3
  • 可變參數的函數調用:第一章§6.5.2.2
  • 可變參數的函數定義:第一章§6.9.1
  • 可變參數函數的參數列表相關宏和它們的用法:Chapter§7.16.1.1 - §7.16.1.4

但是,沒有關於可變參數函數的全功能描述,以完整章節的形式編譯(如果這是y你在尋找)標準本身,AFAIK。

你可能想看看wiki entry以獲得更多的見解。

+0

那麼他們應該如何得到編譯器開發人員的支持呢? – AnArrayOfFunctions

+2

@FISOCPP我沒有得到你。有足夠的信息來支持標準中存在的可變參數函數,它只是不以_complete章節或教程的形式。我可以問你正在尋找哪些特定的信息嗎? –

+0

如果你這麼說。我只是想知道。 – AnArrayOfFunctions