Что думает компилятор C / C ++ ...
?Чтобы быть ясным, я не думаю, что это дублирующий вопрос, потому что другие stdarg
вопросы касаются "что такое списки аргументов с переменным числом аргументов / как они работают?"Это не мой вопрос.
Я просмотрел файлы включения MSVC и нашел stdarg.h, vcruntime.h и т. Д., Но еще не удовлетворился.
Компилятор видит ...
как оператор?Символ компоновщика?Макрос?Это не может быть идентификатор, потому что этот исходный символ (.
) недопустим в идентификаторах.
Если бы мне пришлось угадывать, я бы сказал, что это что-то вроде использования макросов __attribute__
илиinline
или register
компилятор "намекает" на запрет предупреждений / ошибок при вызове функции с несколькими параметрами.
Из ISO9899:
6.5.2.2 Вызовы функций
Ограничения
6 Нотация многоточия в деклараторе прототипа функции приводит к остановке преобразования типа аргумента после последнего объявленного параметра.Повышение аргументов по умолчанию выполняется на конечных аргументах.
Я полагаю, что не все должно быть точно зафиксировано, но мне было любопытно, возможно, там было больше технической информации.