Вы можете объяснить, что это значит?
argc >= 3 ? atoi(argv[2]) : 40;
И второй вопрос: существуют ли библиотеки функций — параметров, которые необходимы, структурировать что-то вроде этого
CVAPI(void) cvAddS( const CvArr* src, CvScalar value, CvArr* dst,
const CvArr* mask CV_DEFAULT(NULL));
Первый фрагмент использует троичный оператор для проверки есть как минимум два аргумента (первый — это имя программы, поэтому 3
в условии), и если это так, то выражение возвращает значение второго аргумента в виде целого числа (atoi
преобразует строку в целое число), иначе выражение возвращает значение 40
,
argc >= 3 ? atoi(argv[2]) : 40;
означает «если argc больше или равно трем возвращаемым argv[2]
конвертируется в целое число, иначе возвращает 40
, «return» в предыдущем выражении немного вводит в заблуждение. На самом деле выражение разрешается в одно или другое, в зависимости от условия.
condition ? true_expr : false_expr
Условно, argc
имеет количество параметров, переданных в main, и argv
это массив, содержащий эти параметры. argv[0]
это имя самого исполняемого файла, так argv[1]
будет первым параметром командной строки после имени исполняемого файла.