Нет, ограничения по стандарту ISO C99 отсутствуют.Если вы используете «благословенную» main
форму (из которых их две):
int main (int argc, char *argv[]);
, тогда вы будете ограничены максимальным размером целого числа со знаком (зависит от реализации, но гарантированнобыть не менее 2 15 -1 или 32 767).
Конечно, вы могли бы даже иметь больше , чем это, поскольку стандарт специально разрешает неблаженные main
формы (например, тот, который принимает long
в качестве счетчика).
Стандарт предписывает, как хранятся аргументы, и такие вещи, как argv[argc]
, должны быть NULL, но он не ограничивает напрямуюколичество.
Конечно, на практике будет ограничение, но это будет полностью зависеть от реализации и среды.Однако, если вам нужно спросить, то вы, вероятно, делаете что-то не так .
Большинство инструментов помещают действительно большое количество аргументов в файл ответов (скажем, args.txt
), а затемпередать один аргумент, например:
my_prog @args.txt
, который позволяет обойти произвольные ограничения на количество и размер аргумента.