Objective-c основная процедура, что такое: int argc, const char * argv []
Какие аргументы передаются в основной метод командной строки:
int main(int argc, const char * argv[])
что такое первое значение int?
И что такое второй параметр, это массив символов?
Как использовать их?
Кроме того, какое практическое применение является типом проекта командной строки, кроме использования его для изучения obj-c, например, для практики.
Ответы
Ответ 1
argc
означает "счет аргумента". Это означает, сколько аргументов передается в исполняемый файл.
argv
означает "значения аргумента". Это указатель на массив символов. Или подумать об этом по-другому, это массив строк C (так как строки C - это просто массивы символов).
Итак, если у вас есть программа "foo" и выполните ее следующим образом:
foo -bar baz -theAnswer 42
Затем в вашей функции main()
argc
будет 5, а argv
будет:
argv[0] = "/full/path/to/foo";
argv[1] = "-bar";
argv[2] = "baz";
argv[3] = "-theAnswer";
argv[4] = "42";
Ответ 2
Параметры main()
- это соглашение unix для доступа к аргументам, указанным в командной строке при выполнении вашей программы. В приложении Cocoa вы можете получить к ним простой простой способ C, или вы можете использовать метод NSProcessInfo
- arguments
, чтобы получить их в объектах NSArray
из NSString
или использовать NSUserDefaults
для получения их как значения в словаре.
Ответ 3
Просто чтобы добавить к другим ответам - Objective-C предназначается как для OS X, так и для iOS. И хотя в приложениях командной строки iOS не так много, оболочка на OS X по-прежнему широко используется, и многие люди пишут инструменты командной строки.
Ответ 4
Эта основная функция от C и не относится к objective-c. Argc дает вам количество аргументов командной строки, переданных вашей программе на C. Argv - это массив строк C и содержит аргументы командной строки.
Вы использовали бы их и проект командной строки в любое время, когда захотите написать инструмент командной строки или программу, с которой вы взаимодействуете из командной строки.
Ответ 5
Как wikipedia (и любой другой источник говорит):
int main(void)
int main(int argc, char *argv[])
Параметры argc
, аргумент count и argv
, вектор аргументов, соответственно дают число и значение аргументов командной строки программы. Именами argc
и argv
может быть любой допустимый идентификатор в C, но общепринятым является использование этих имен. В С++ имена должны быть взяты буквально, а "void
" в списке параметров следует опустить, если требуется строгое соответствие. Другие форматы, зависящие от платформы, также допускаются стандартами C и С++, за исключением того, что в С++ возвращаемый тип должен оставаться int; например, Unix (хотя и не POSIX.1) и Microsoft Windows имеют третий аргумент, предоставляющий программную среду, в противном случае доступный через getenv в stdlib.h:
int main(int argc, char **argv, char **envp)
Ответ 6
Кроме того, какое практическое применение является типом проекта командной строки, кроме использования его для изучения obj-c, например, для практики.
Практическое использование - это создание инструмента командной строки с использованием кода из созданной вами Framework или Application. Помощники, утилиты, агенты запуска и демоны, все эти фоновые процессы обычно реализуются как инструменты командной строки.