|
主要代码如下:- typedef struct
- {
- unsigned char fla;
- void (*f)(unsigned char);
- }relay_t;
复制代码 构造一个结构体,内含一个函数指针;
- relay_t relay_sz[Relay_Num];
- void (*f[Relay_Num])(unsigned char)={Relay_1,Relay_2,Relay_3,Relay_4,Relay_5,Relay_6,Relay_7,Relay_8} ;
复制代码 定义了一个函数指针数组,Relay_x已在其它地方正确定义。
- void (*fe)(unsigned char)=NULL;
复制代码 定义了一个测试用的函数指针
- relay_sz[0].f=Relay_1;
-
- relay_sz[0].f=f[0];
-
- fe=Relay_1;
-
- fe=f[0];
复制代码 使用四种赋值方式
使用两种方式进行测试
结果:
- relay_sz[0].f=Relay_1;
- relay_sz[0].f();
复制代码 可以正常执行
- relay_sz[0].f=f[0];
- relay_sz[0].f();
复制代码 不能正常执行
可以正常执行
不能正常执行
请问这是为什么呢?
|
|