Он нам «нужен», потому что этого требуют разные стандарты.
Мы можем полностью игнорировать значение, но, поскольку это первый параметр main
, мы должны иметь его в списке параметров. В C ++ (и, вероятно, в нестандартных диалектах C) вы можете просто опустить имя параметра, как этот фрагмент C ++ (легко преобразовать в C):
#include <stdio.h> // C-compatible include, guarantees puts in global namespace
// program will print contents of argv, one item per line, starting from argv[0]
int main(int /*argc*/, char *argv[]) { // uncomment argc for C
//(void)argc; // uncomment statement for C
for (int i=0; argv[i]; ++i) {
puts(argv[i]);
}
return 0;
}
В стандартном C с настройками общих предупреждений неиспользуемый параметр генерирует предупреждение, которое можно исправить с помощью оператора, например, (void)argc;
который заставляет использовать имя без генерации кода.
argc
приятно иметь, потому что в противном случае многим программам пришлось бы проходить через параметры, чтобы получить счет. Кроме того, во многих языках программирования с массивами, имеющими длину, нет никаких argc
параметров, есть только массив с элементами.
int argc(char *argv[])