Привет всем, надеюсь, вы поможете мне понять, почему getopt использовал int и как обрабатывается переменная optopt в getopt. Довольно новичок в C ++.
Если посмотреть на getopt, optopt определяется как целое число. http://www.gnu.org/software/libtool/manual/libc/Using-Getopt.html#Using-Getopt
и приведенный здесь пример: http://www.gnu.org/software/libtool/manual/libc/Example-of-Getopt.html#Example-of-Getopt
В этом примере я не понимаю, как целое число `c 'сравнивается с символом в операторе switch.
Насколько я понимаю, основной аргумент geopt работает, хотя это массив символов argv, поэтому тот факт, что он возвращает int, кажется мне странным, я ожидал, что это будет char, и мне потребуется привести любые числовые аргументы к int. Преобразуется ли символ автоматически в его код ANSI и обратно или что-то в этом роде? Статус printf
fprintf (stderr, "Unknown option `-%c'.\n", optopt);
Ожидает char, как я понимаю, но получает int. Зачем getopt использовать int при работе с массивом символов?
Я упускаю что-то действительно очевидное? Я должен быть.