Вопрос Объясните простыми словами int main() c++

Регистрация
13 Дек 2013
Сообщения
68
Репутация
0
Спасибо
0
Монет
0
int main() и int main(int argc, char* argv[]) Я слышал, что второй вариант больше подходит для командной строки. Объясните на простых примерах как второй вариант работает
 
Аргументы командной строки: metanit.com/cpp/tutorial/3.10.php
 
При запуске программы из командной строки, можно добавлять аргументы.
25273238_95dcf76e607fae6a1079d620fd877b0f_800.png

Типо так...

Добавил порт, добавил кол.. чего то там.
 
ОС формирует массив char* arr[] в который попадает строка командной строки (она же может быть написана в ярлыке). Строка разбивается на отдельные слова пробелами.
Например при запуске файла
C:/programs/myprog.exe -t 39483 "hello world"
будет сформирован строковой массив
char* arr[] = {"C:/programs/myprog.exe", "-t", "39483", "hello world"};
и будет вызвана функция майн как
main(sizeof(arr)/sizeof(char*), arr);

arr[0] содержит C:/programs/myprog.exe
arr[1] содержит -t
arr[2] содержит 39483
arr[3] содержит hello world (из за того что он был взят в кавычки попало оба слова)
так что main получит размер массива в первый параметр (4 в данном примере) и указатель на строки во второй и сможет получить к нему доступ. Как видно имя файла само по себе является одним из элементов массива, так что он пустым не бывает.

Это приблизительная схема, подробностей взаимодействия ОС с исполняемыми файлами я не знаю)
 
Назад
Сверху