在C和C++中,(...)被称为什么?

jbose2ul  于 2022-12-01  发布在  其他
关注(0)|答案(4)|浏览(194)

...的用途之一是在C和C++中表示 * 可变 * 实体。

  • 它叫什么名字?
  • 当以这种方式使用时,它被归类为运算符还是其他什么?
  • 还有关于...的其他细节吗?
    • 编辑:**我知道...的用途,我在询问它的名称和分类,我希望在C和C++中类似。
czq61nw1

czq61nw11#

这是其中一个标点符号。

6.4.6  Punctuators
Syntax punctuator:
     one of  [    ]    (    )    {   }    .    ->
             ++   --   &    *    +   -    ~    !
             /    %    <<   >>   <   >    <=   >=    ==   !=   ^   |   &&   ||
             ?    :    ;    ...
             =    *=   /=   %=   +=  -=   <<=  >>=   &=   ^=   |=
             ,    #    ##
             <:   :>   <%   %>   %:   %:%:

在函数声明中,它被称为***省略号***。
省略号也被一些编译器C扩展使用。例如-gcc开关/case范围扩展

const char *test(unsigned num)
{
    switch(num)
    {
        case 0 ... 9:
            return "the value is in the 0 to 9 range";
        case 10 ... 99:
            return "the value is in the 10 to 99 range";
        default:
            return "out of tested range";
    }
}

https://godbolt.org/z/YBLma-

yqkkidmi

yqkkidmi2#

...在英语和C标准中都称为 * 省略号 *。

kyvafyod

kyvafyod3#

在C和C中,...的用途之一是表示变元实体。
是的,在外行的术语中,...可以被认为是表示一个用例的多于一个或多个(就像在伪代码标点中,我们有时使用多个点来表示不同的类型),对于这种情况,如果我们考虑C
中的变量(在“变化”参数/参数的意义上是多个),它将指函数或模板的变量数量。
它叫什么名字?

省略号

当以这种方式使用时,它被归类为运算符还是其他什么?
不,它绝对不是一个运算符,因为它允许你 * 传递 * 任何数量的参数,而不是 * 操作 * 它们。
关于......还有其他细节吗?
据我所知-
1.它是一个特殊的说明符;
1.省略号总是出现在参数列表的最后;
1.就它的使用而言,它只在你想取消模板/函数参数数量的限制,或者你需要扩展参数数量时使用(即它在变量类模板或函数模板中提供参数包扩展)。实际上,我们大多数情况下需要一组固定的已知参数,所以它不适用于大多数情况;
1.它可以与sizeof运算符一起使用,因为它也被归类为包扩展。

**编辑:**我知道...的用途,我想知道它的名称和分类,我希望C和C++中的名称和分类是相似的。

名称相同,但C++和C的用法可能不同。
我只熟悉它在前一种语言中的用法。(我记得在 Variadics 上有一个HackerRank问题,涉及它的实用性。)

8cdiaqws

8cdiaqws4#

在C和C中,三个句号...的序列称为省略号
在C
中,省略号有助于初始化和展开不同种类的

    • parameter pack * -当类型标识符之间有 * 省略号 * 时

Type ... identifier

  • A * pack expansion * -由模式和 * 省略号 * 组成

pattern...

相关问题