此问题已在此处有答案:
How do function pointers in C work?(12个回答)
2天前关闭。
我在理解下面的C语言结构时遇到了问题!我知道什么是结构体和它的用途,但这一个对我来说似乎很奇怪,我不能看到结构体的标准形式,就像它在c学习网站上描述的那样,如www.geeksforgeeks.org!
这个结构体的代码中没有更多的内容!
typedef struct sIMasterConnection* IMasterConnection;
struct sIMasterConnection {
bool (*isReady) (IMasterConnection self);
bool (*sendASDU) (IMasterConnection self, CS101_ASDU asdu);
bool (*sendACT_CON) (IMasterConnection self, CS101_ASDU asdu, bool negative);
bool (*sendACT_TERM) (IMasterConnection self, CS101_ASDU asdu);
void (*close) (IMasterConnection self);
int (*getPeerAddress) (IMasterConnection self, char* addrBuf, int addrBufSize);
CS101_AppLayerParameters (*getApplicationLayerParameters) (IMasterConnection self);
void* object;
};
1条答案
按热度按时间plicqrtu1#
结构的所有数据成员(此成员除外)
是指向函数的指针。
例如,此数据成员
声明一个指向函数的指针,该函数具有返回类型
bool
和一个类型为IMasterConnection
的参数,该参数是如下声明的指针类型的别名也就是说,参数
self
具有指向struct sIMasterConnection
类型的对象的指针类型。为了使它更清楚,考虑一个简单的演示程序,其中声明了一个指向函数的指针。
程序输出为
与声明saclar变量
pf
的方式类似,您可以声明结构的数据成员。