Jednym z zastosowań ...
jest do określenia zmiennej liczbie argumentów podmiotów w C i C ++.
Jak się nazywa?
Czy jest sklasyfikowany jako operator lub coś innego, gdy jest używany w ten sposób?
Wszelkie inne szczegóły dotyczące ...
?
Edycja:
Znam cel ...
. Pytam o jego nazwę i klasyfikację, które, mam nadzieję, są podobne zarówno w C, jak i C ++.
Odpowiedzi:
To jeden z znaków interpunkcyjnych .
W deklaracji funkcji nazywa się to elipsą .
Ellipsis jest także używany przez niektóre
C
rozszerzenia języka kompilatora . Przykład - przełącznik gcc / rozszerzenie zakresu obudowyhttps://godbolt.org/z/YBLma-
źródło
...
to nie operator, ponieważ nie może stanowić część wypowiedzi (w sensie „wyrażenia” zdefiniowanej przez C11 § 6.5 ). To ma więcej wspólnego z{
}
a;
niż z innymi punctuators....
może być częścią wyrażenia. Ale formalna składnia nie uważa tego za operator ....
Jest określany jako wielokropek zarówno w języku angielskim oraz w standardzie C.źródło
Tak, w kategoriach laika
...
można uznać, że oznacza więcej niż jeden lub wielokrotność (jak w interpunkcji pseudokodu, czasami używamy wielu kropek, aby przypominać różne typy) przypadku użycia, dla którego, jeśli weźmiemy pod uwagę warianty (w sensie wielokrotność „zmiennych” argumentów / parametrów) w C ++, odwoływałby się do zmiennej liczby argumentów funkcji lub szablonów.Elipsa
Nie, zdecydowanie nie jest to operator, ponieważ pozwala przekazać dowolną liczbę argumentów, a nie operować nimi.
O ile mi wiadomo -
sizeof
operatorem, ponieważ jest również klasyfikowany jako rozszerzenie pakietu.Nazwa jest taka sama, ale użycie może się różnić dla C ++ i C.
Znam tylko jego użycie w poprzednim języku. (Pamiętam, że miałem problem z HackerRank na Variadics , obejmujący jego użyteczność).
źródło
Sekwencja trzech kropek
...
nazywa się elipsą zarówno w C, jak i C ++W C ++ elipsa pomaga inicjalizować i rozszerzać różnego rodzaju paczki .
A
parameter pack
- gdy między typem a identyfikatorem występuje elipsaType ... identifier
A
pack expansion
- składa się ze wzoru i elipsypattern...
źródło