함수 포인터가 어떻게 작동하는지 이해하려고합니다.
기능에서 '무효 F3()':
"경고 :왜 "bool의 주소가 항상 사실로 평가됩니까?"
bool f1(int x){
if(condition){return true;}
else return false;
}
bool f2(int x, bool (*func)(int)){
if (func(x)){return true;}
else return false;
}
void f3(int x, bool (*func)(int, bool)){
if (func(x, f1)) {return "Whatever";}
else return "Nevermind";
int main(){
f3(x, f2);
}
이 나에게주는 : 부울의 ADRESS을 'F1 (int)를'항상 '참'으로 평가하는 것이다이 설정을 나타냅니다 [int] bool (*) (int, bool) to 'bool () (int, bool ())'에서 'int main() '
얼마나 엉망입니까?
을, 당신 아마 그것을 부르고 싶었다. – bialpio
'if (condition) 대신 true를 반환; 그렇지 않으면 false를 반환합니다. '반환 조건;의 습관을 들여야합니다. 훨씬 간단하고 짧으며 똑같은 일을합니다. –