有关typedef

来源:百度知道 编辑:UC知道 时间:2024/06/28 09:54:35
typedef bool X(int)
X * p

这是甚麼意思?
回:雷震八方:
这是考试题,代码这两行

声明的是函数指针:返回值为bool类型,参数为一个int型的函数指针。
例如:
#include<iostream>
using namespace std;

bool flage(int i)
{
if(i==0)
return true;
else
return false;
}
int main()
{
typedef bool X(int);

X *p=flage;

if(p(0))
cout<<"It is point of function!"<<endl;
return 0;
}

声明一种函数类型,如:
#include <stdio.h>

void fun(int n)
{
printf("%d\n", n);
}

typedef void X(int);
X *p = &fun;

int main()
{
int a = 3, b = 4;
p(a);
fun(b);

return 0;
}

我只见过 typedef bool X,没见过typedef bool X(int)这种情况。能否详细把代码发一遍?

相当于:bool (*p)(int);
C++ 中通过下述方式查看 p 的类型:
std::cout << (typeid(p)).name() << std::endl;