Я читаю главу 2 Advanced Linux Programming:
http://www.advancedlinuxprogramming.com/alp-folder/alp-ch02-writing-good-gnu-linux-software.pdf
В разделе 2.1.3 Using getopt_long
есть пример программы, которая выглядит примерно так:
int main (int argc, char* argv[]) {
int next_option;
// ...
do {
next_option = getopt_long (argc, argv, short_options, long_options, NULL);
switch (next_option) {
case ‘h’: /* -h or --help */
// ...
}
// ...
Мое внимание привлекло то, что next_option объявлен как int. Функция getopt_long(), по-видимому, возвращает целое число, представляющее короткий аргумент командной строки, который используется в следующем операторе switch. Как получилось, что целое число можно сравнить с символом в операторе switch?
Существует ли неявное преобразование из char (один символ?) в int? Насколько код выше действителен? (см. полный код в связанном pdf)
char *
, вторая проchar
. Где связь? - person AnT   schedule 29.08.2010char *
. - person AnT   schedule 29.08.2010