Я изучаю C и наткнулся на то, что мне было любопытно. Для меня вызов foo в main, как показано ниже, ничего не возвращает:
int foo(bar){
return bar * 2;
}
int main(){
foo(10);
}
Только когда я отформатирую вывод с помощью printf, он вернет результат из foo в main. Так задумано или я что-то упускаю? Следующий пример работает:
int foo(bar){
return bar * 2;
}
int main(){
// will return 20
printf("%d\n", foo(10));
}
foo()
. Вам необходимо ее использовать, но в этом случае бессмысленно вызывать функцию, если вы игнорируете ее результат. Во втором примере вы передаете возвращаемое значение вprintf()
. - person Weather Vane   schedule 24.10.2019foo()
не возвращает значение, но это так. Вы можете получить и передать это значение, скажем, с помощьюint retval = foo(10); printf("%d\n", retval);
. Второй пример более сложен, так как вы никогда не видите возвращаемое значение, а передаете его непосредственно вprintf
. - person Weather Vane   schedule 24.10.2019foo()
возвращает значение. Вам нужно «поймать» это значение либо в переменной (другое целое число), либо через функцию (как вы сделали, используяprintf()
). В первом примере вы ничего не сделали с возвращаемой переменнойfoo()
' . - person Xofo   schedule 24.10.2019