#include <stdio.h>
enum bool
{
true, false
};
typedef bool
(*compare_fun) (int, int);
输入上述代码时出错。如何创建一个需要返回布尔值的函数指针?
答案 0 :(得分:3)
应为typedef enum bool (*compare_fun)(int, int);
:)
另请确保您的实施没有预定义的bool
true
和false
请注意,在C ++中定义枚举,类或结构时,例如名称为A,则可以声明类型A的变量,如
A var;
或
class A var; //or struct A var; or enum A var;
在C中,只有第二种语法有效。 这就是他们通常制作typedef的原因。像这样
typedef enum {true, false} bool;
在这种情况下,您可以使用原始语法:
typedef bool (*p) (int, int);
HTH。
答案 1 :(得分:1)
怎么样:
typedef enum
{
true, false
} bool;
bool
(*compare_fun) (int, int);