Нам це "потрібно", тому що цього вимагають різні стандарти.
Ми можемо повністю ігнорувати значення, але оскільки це перший параметр 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[])
саме так :-))