2016-01-03 131 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