L'une des utilisations de ...
est de désigner des entités variadiques en C et C ++.
Quel est son nom?
Est-il classé comme opérateur ou autre chose lorsqu'il est utilisé de cette façon?
D'autres détails concernant ...
?
Edit:
je connais le but de ...
. Je pose des questions sur son nom et sa classification, qui, je l'espère, sont similaires en C et en C ++.
Réponses:
C'est l'un des ponctuateurs .
Dans la déclaration de fonction, il est appelé les points de suspension .
Ellipsis est également utilisé par certaines
C
extensions du langage de compilation . Exemple - Commutateur GCC / extension de plage de boîtierhttps://godbolt.org/z/YBLma-
la source
...
n'est pas un opérateur, car il ne peut pas faire partie d'une expression (au sens d '«expression» définie par C11 §6.5 ). Il a plus en commun avec{
}
et;
qu'avec les autres ponctuateurs....
peut faire partie d'une expression. Mais il n'est pas considéré comme un opérateur par la syntaxe formelle.Le
...
est appelé des points de suspension à la fois en anglais et dans la norme C.la source
Oui, en termes simples,
...
on peut penser à désigner plus d'un ou plusieurs (comme dans la ponctuation pseudo-code, nous utilisons parfois plusieurs points pour ressembler à différents types) d'un cas d'utilisation, pour lequel si nous considérons les variadiques (étant multiples dans le sens d'arguments / paramètres «variables») en C ++, cela ferait référence à un nombre variable d'arguments pour des fonctions ou des modèles.Ellipse
Non, ce n'est certainement pas un opérateur car il vous permet de passer un certain nombre d'arguments, pas de les exploiter .
Pour autant que je sache -
sizeof
opérateur, car il est également classé comme une extension de pack.Le nom est le même, mais l'utilisation peut varier pour C ++ et C.
Je ne connais que son utilisation dans l'ancienne langue. (Je me souviens avoir eu un problème HackerRank sur Variadics , couvrant son utilité.)
la source
La séquence de trois points
...
est appelée des points de suspension en C et C ++En C ++, les points de suspension permettent d'initialiser et d'étendre différents types de packs .
A
parameter pack
- lorsqu'il y a des points de suspension entre le type et l' identifiantType ... identifier
A
pack expansion
- se compose d'un motif et d'une ellipsepattern...
la source