首先这涉及到指向函数的指针相关知识,这部分相关内容很简单,出问题的是作用域和运算优先级,‘.’运算符的优先级很高,
第二种写法是在找cw的(*p_test)成员,这里显然是没有的,改成:(*(cw.p_test))()就没有问题,指向函数的指针说白了也就是一个特殊的变量
而已,首先要通过'.'运算符获取到这个成员变量,才能使用这个变量。cw.p_test是获取变量的过程,不可以拆开的
函数指针做为结构体成员,怎么正确调用此函数指针所指向的函数?
为什么写法2编译时,会报错?这种写法为什么不行?
#include "stdio.h"
int test(void)
{
return 5;
}
typedef struct haha
{
int (*p_test)(void);
}haha,*p_haha;
haha cw=
{
.p_test=test,
};
p_haha p_cw=&cw;
int main(void)
{
int i,j;
/*写法1*/
i=cw.p_test();
printf("i =%d\n",i);
/*写法2*/
j=cw.(*p_test)();
printf("j =%d\n",j);
}
- 点赞
- 写回答
- 关注问题
- 收藏
- 复制链接分享
- 邀请回答
1条回答
为你推荐
- 通过函数改变实参指针变量所指变量的值?
- 函数调用结构体指针的时候出现了一个很神奇的情况
- 向函数传入一个结构体指针什么时候才不需要返回值?
- c++
- 1个回答
- 为什么指针函数可以不带形参名?
- 结构成员的Golang函数指针
- methods
- pointers
- 3个回答
- 函数指针做为结构体成员,怎么正确调用此函数指针所指向的函数?
- c语言
- 1个回答
- C#调用C++函数,参数为指针该怎么处理?
- c++
- 1个回答
- qt中自定义槽函数怎么调用该类中的控件指针
- 控件
- 指针
- qt
- 2个回答
- 用结构体变量的指针做函数的参数
- c
- struct
- 结构
- 指针
- 2个回答
- 指向函数的指针与指向二维数组的指针的运用
- 二维数组
- 指针
- 3个回答
- c++成员函数指针强制转换为一般函数指针出现问题
- c++
- 函数指针
- 成员函数指针
- 2个回答
- c语言指针问题和函数调用吧
- c指针
- 4个回答
- 调用哪个构造函数?C++,结构体
- struct
- c++
- 指针
- 数据
- 1个回答
- 这两个调用函数为什么所得结果会不一样
- 指针变量做参数
- 调用函数
- 3个回答
- 基类指针指向子类对象,调用的成员函数和成员变量是基类的还是子类的?
- 类
- 指针
- 3个回答
- 指向函数的指针不需要定义?
- c
- 函数指针
- 指针
- 3个回答
- C语言函数间用指针调用数值的问题
- c
- 函数
- 指针
- 7个回答
- C# 调用c++函数 结构体 指针
- 函数指针的一例子,求教?
- 函数式编程指针
- 5个回答
- C语言函数的形参(结构体类型)和实参类型(指针)可以不同吗?
- c
- 指针
- 7个回答