我有一个关于C的问题,希望有人愿意分享他们的知识。
当我读代码的时候,我被一个结构绊倒了,它的成员是以一种我从未见过的方式被调用的。
代码基本如下:
调用结构成员的代码

struct struct_name gzw;
gzw.cb = otherfunct;

结构定义如下
struct struct_name {
        int bela;
        unsigned int packet;
        int (*cb)(struct struct_name *fd, unsigned int packet2);
};

我有点困惑,因为据我所知,cb成员应该是一个指针,有两个参数,不是吗为什么struct_name可以调用“cb”,而不是(*cb有两个参数)?
谢谢你的好意

最佳答案

CB成员是一个函数指针,它接受两个参数并返回和int。您所困惑的调用是分配一个指针值,因此不需要引用这些参数对于调用函数,将使用参数gzw.cb(p1,p2)

关于c - 在C中调用Struct成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5968149/

10-17 01:05