l Если список формальных параметров заканчивается многоточием, это означает, что при ее вызове на этом месте можно указать еще несколько параметров. Проверка соответствия типов для этих параметров не выполняется, char и short передаются как int, а float – как double. Например, int printf(const char*, …);
Функция main()
Текущее количество фактических параметров при вызове передается тремя способами:
- С помощью отдельного параметра счетчика;
- С помощью параметра ограничителя, значение которого отмечает конец списка параметров;
- Форматный строй, в котором передается спецификации параметров.
- В языке С заданы два встроенных аргумента функции main:
- main(int argc, char* argv[ ]){…}
- main(int argc, char* argv[ ], char* env[ ]){…}
- Два первых параметра используются для передачи аргументов командной строки. Третий используется для доступа к параметрам среды операционной системы. Эти три аргумента доступны только в функции main.
- argc содержит количество аргументов командной строки. Значение всегда больше 1, т.к. имя вызываемой программы трактуется как первый аргумент.
- argv – указатель на массив указателей. Каждый элемент массива содержит указатель на отдельный параметр командной строки.
- env – это указатель на массив строк, который содержит установку среды.
- Аргументы функции main позиционно зависимы, при этом третий аргумент можно не объявлять, но если он объявлен, то и первые два тоже должны быть объявлены.