【发布时间】:2012-04-05 00:51:03
【问题描述】:
我每天都使用 ROOT C++ 库 (root.cern.ch),并且在浏览源代码时遇到了这个函数声明:
TString TString::Format(const char *va_(fmt), ...)
{
//etc.
可以找到here。
我不明白const char * 如何在其名称中包含参数或括号。
表达式va_(fmt) 稍后用作简单的const char *,尽管它看起来像函数调用或构造函数。起初我认为这与变量参数列表有关,这对我来说也是新的,但是阅读 stdarg.h 上的文档对这个问题一点帮助都没有。
很难通过谷歌搜索来寻求帮助,因为我真的不知道该怎么称呼它。带有参数的声明?这不会产生任何好的结果。
我以前认为我知道 C++,但这里发生了什么?我们将不胜感激。
【问题讨论】:
-
我猜
va_只是一个宏。可能除了扩展其参数之外什么都不做。
标签: c++ syntax arguments function-declaration