Я читаю книгу Системное программирование Windows. Во второй главе есть программа Cat.c, которая реализует команду cat в linux. Код: http://pastebin.com/wwQFp599.
В 20-й строке вызывается функция
iFirstFile = Options (argc, argv, _T("s"), &dashS, NULL);
Код для параметра: http://pastebin.com/QegxxFpn.
Теперь параметры для опции
(int argc, LPCTSTR argv [], LPCTSTR OptStr, ...)
1) Что это за "..."? Означает ли это, что мы можем предоставить ему неограниченное количество аргументов типа LPCTSTR?
2) Если я выполняю программу как cat -s a.txt
а) Что будет argc и почему? б) Каким будет argv и почему? в) Что такое _T("s")? Почему здесь используется _T? г) Почему используется &dashS? Скорее всего, это адрес логического значения. Но я не могу понять логику использования этого. e) Почему они передали NULL в качестве последнего параметра?
У меня есть базовые знания программирования на C, и эти вещи действительно сбивают с толку. Так будь любезен, объясни.
...
известен как переменный список аргументов. Надеюсь, это поможет в поиске в Google. - person Cornstalks   schedule 10.09.2013I never saw variable argument list in C books.
-- Пришло время потребовать возмещения у авторов соответствующих книг. - person devnull   schedule 10.09.2013printf
иscanf
, являются переменными аргументами, возможно, вы можете проверить их. - person Yu Hao   schedule 10.09.2013