typedef void (f)()
可以这样写,代表的是一个函数类型,
typedef void (*f)()
可以这样写,代表的是一个函数指针类型
可以对void(*f)() 中的f赋值,因为它是一个指针变量
可以这样写,代表的是一个函数类型,
typedef void (*f)()
可以这样写,代表的是一个函数指针类型
可以对void(*f)() 中的f赋值,因为它是一个指针变量
不可以对void(f)()中的f赋值,因为它是一个常量,只是声明了是一个函数
上代码,慢慢体会!
--------------------------------------------------------------------------------------------------
#include <iostream>
#include <string>
using namespace std;
typedef void (f_t)(string);
typedef void (*g_t)(string);
void out(string value)
{
cout<<value<<endl;
}
int main(void)
{
f_t *ft;
g_t gt;
ft = out;
gt = out;
ft("ft");
gt("gt");
system("pause");
return 0;
}
又发现函数类型的一种用法 上代码
1 #include <stdio.h>
2
3 typedef void Myfunc(void);
4
5 //static Myfunc myfunc;
6 Myfuncrmyfunc;
7
8 int main(void)
9 {
10
11 myfunc();
12 }
13
14 void myfunc()
15 {
16 printf("hello man!");
17 }
~
~