Ответ 1
Список параметров переменной длины
Edit:
Или, если описывается сама функция: Функция Variadic
Рассмотрим printf:
int printf ( const char * format, ... );
Каковы термины, используемые для описания ...
и функций, которые его используют? Я называю это многоточием, но это как вызов &
оператора ampersand.
Список параметров переменной длины
Edit:
Или, если описывается сама функция: Функция Variadic
Обозначение эллипсиса (,...) p202 "K + R Язык программирования C"
"Эллипсис" на самом деле часто является лучшим термином здесь. Иногда мы ссылаемся на "аргументы, переданные с использованием многоточия" (С++ 03 8.3.5p2). В контексте определения наилучшей перегруженной функции можно сказать, что аргумент "соответствует многоточию" (С++ 03 13.3.2p2).
printf
и другие подобные функции часто называются "вариативными функциями".
Примечание. Приходящий стандарт С++ 0x предлагает два разных способа объявления и реализации вариационных функций (путь va_arg
и способ шаблона). Но оба они связаны с маркером с многоточием.
Оператор Ellipsis - единственный термин, который я слышал - он достаточно редок (к счастью), что вам больше ничего не нужно!
Эта спецификация проекта С++ относится к ней просто как " эллипсис", а иногда и к определенной или неопределенной статье, как эллипсис или эллипсис.
5.2.2 Раздел 6 "Функциональный вызов" содержит:
Можно объявить функцию, чтобы принимать меньше аргументов (путем объявления аргументы по умолчанию (8.3.6)) или более аргументы (используя многоточие,... 8.3.5) чем число параметров в определении функции (8.4).
8.3.5 Раздел "Функции" содержит:
Если параметр-объявление-предложение завершается с эллипсисом, количество аргументов должно быть равно или больше, чем количество параметры, которые не имеют значения по умолчанию аргумент.
8.3.6 раздел 4 содержит пример кода:
void g(int = 0, ...); // OK, ellipsis is not a parameter so it can follow
// a parameter with a default argument
Дополнительное педантизм: раздел 13.3.3.1.3 ( "Последовательности преобразования эллипса" ) относится к "спецификации параметра многоточия". Однако, как указано в приведенном выше примере кода, многоточие не является, строго говоря, параметром. 8.3.5 в разделе 1 объясняется, что, хотя эллипсис появляется в объявлении параметра-объявления, он следует за списком-декларацией параметров.
В дополнение к "многоточию" и "вариационной функции" также видны термины "vararg" и "varargs". Это, по-видимому, аббревиатура для "списка переменных аргументов", судя по языку, окружающему заголовок (LEGACY) <varargs.h>
в POSIX.
Кроме того, основная причина, по которой термин "амперсанд-оператор" не используется, заключается в том, что амперсанд может представлять собой любой из двух разных операторов в зависимости от контекста, что сделает этот термин неоднозначным. Это не происходит с многоточием; для него нет другого значения, поэтому использование термина "эллипсис" для токена "...
" не, как использование термина "амперсанд-оператор" для токена "&
".
Мартин и Демьян оба правы: