【问题标题】:"..." last argument of a c static function“...” c 静态函数的最后一个参数
【发布时间】:2011-09-25 04:58:35
【问题描述】:

... 参数在声明 static void info(const char *fmt,...) 中的含义是什么?

它是我最近开始使用的 C 库的一部分。对不起,如果它是基本的 C 东西,但我以前从未见过,谷歌对 ... 并不那么冗长!

【问题讨论】:

    标签: c function arguments


    【解决方案1】:

    它是可变参数(Variadic function)。就像 printf 一样。

     int printf(const char *format, ...)
    

    欲了解更多信息,check this

    【讨论】:

      【解决方案2】:

      如果函数的最后一个参数写成...,这意味着该函数可以接受任意多个参数(就编译器而言,可以是任意类型 - 该函数当然可能需要特定类型,但编译器无法强制执行这些类型)。

      然后可以使用来自stdarg.hva_* 函数集访问这些参数。

      【讨论】:

        【解决方案3】:

        它在你的方法中接受可变数量的参数。 I found this article explaining the details. 如您所见,它很快变得非常复杂。

        【讨论】:

          【解决方案4】:

          它表示可变参数,这意味着编译器将接受并编译带有任何参数的调用。通常它们的类型由前面参数中的值指示。

          【讨论】:

          • variable arguments 是我一直在寻找的关键词!
          猜你喜欢
          • 1970-01-01
          • 2020-06-16
          • 2014-06-26
          • 2012-03-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多