2014-01-07 4 views
-2

Функции могут возвращать число, указатель и большую часть типа, который вы хотите, но в чем его смысл?В чем смысл «return ret <0»?

return ret < 0; 

(Этот фрагмент кода из последней строки кода, ffprobe.c.)

+3

Какую часть этого вы не понимаете? Знаете ли вы ключевое слово «return» в C? Знаете ли вы оператор сравнения '<'? Вы признаете 'ret' как переменную, объявленную ранее? Поместите все это вместе ... – abelenky

ответ

13

Это будет возвращать 1 или 0 в зависимости от состояния ret < 0 является true или false.

Вы можете понять это как

if(ret < 0) 
    return 1; 
else 
    return 0; 
+0

Все отредактировано, чтобы сказать половину того, что я сказал. По крайней мере, для оп. – uchuugaka

+0

Перед тем, как ответить, я уже отредактировал свой ответ, но я опоздал из-за моего медленного подключения к Интернету (Скачивание игры * Несправедливость *: D) – haccks

+0

Просто дружелюбный jibe. Просто счастлив, что все ясно. Типичный традиционный стиль C-кодирования сбивает с толку людей, которые к нему привыкли, которые, вероятно, кажутся более явными стилями кодирования (в нормальных условиях чтения человеком), в то время как традиционные педантичные люди C скажут, что они явны, потому что они используются для простого чтения кода по порядку оценки. – uchuugaka

2

Она возвращает значение условной операции. ret < 0 Это короткая стенограмма, которую вы часто видите. Программисты C, как известно, педантичны и не записывают код, очевидный для учащегося. Это эквивалентно тому, что может быть указано для смертных как

if (ret < 0) { return true; } else { return false; }

1

Оператор возврата может иметь выражение. , когда функция возвращается с помощью оператора return, он сначала вычисляет выражение.

 return (expression); 

выражения может быть любым допустимым выражением в C. после оценки она возвращает то, что значение выходного выражения (при условии, спичек возвращения типа или компилятора через ошибку) в вашем случае заявление будет как

 return (ret < 0); 

в зависимости от значения RET либо 1 (если RET меньше 0) или 0 (если RET больше 0) будет возвращено