void**
假设有一个封装过的,用于获取消息队列中消息的函数声明为
get_msg_que(void **msg);
消息队列中可能存放两种结构的消息如:
typedef struct{
int msg_id; //msg_id =1
struct_msg msg_strA;
}que_msgA;
typedef struct{
int msg_id; //msg_id =2
int num;
struct_msg msg_strB;
}que_msgB;
main函数通过调用get_msg_que获取消息内容。
但由于get_msg_que可能会返回两种不同的消息结构,就要通过msg_id来进行判断。
问题:对void**不是很熟,main()如何调用get_msg_que,如何获取msg_id,希望大家帮忙。
get_msg_que(void **msg);
消息队列中可能存放两种结构的消息如:
typedef struct{
int msg_id; //msg_id =1
struct_msg msg_strA;
}que_msgA;
typedef struct{
int msg_id; //msg_id =2
int num;
struct_msg msg_strB;
}que_msgB;
main函数通过调用get_msg_que获取消息内容。
但由于get_msg_que可能会返回两种不同的消息结构,就要通过msg_id来进行判断。
问题:对void**不是很熟,main()如何调用get_msg_que,如何获取msg_id,希望大家帮忙。
...全文
相关推荐
动态数组实现(所有代码均使用C语言回调函数实现及存储数据均使用void*、void**实现)
rar文件包含:Vector.h、Vector.c、main.c。主要实现自主定义回调函数结合及其在动态数组功能中的使用实例。存储数据使用void*、void**,其中包括结构体数据结构。主要功能有初始化动态数组、释放动态数组、尾插法、删除指定下标、更新指定下标数据、打印数据、获取数据对应的指定下标等。
双链表实现(所有代码均使用C语言回调函数实现及存储数据均使用void*、void**实现)
rar文件包含:DoubleList.h、DoubleList.c、main.c。主要实现自主定义回调函数结合及其在双链表功能中的使用实例。存储数据使用void*、void**,其中包括结构体数据结构。主要功能有初始化双链表、释放双链表、尾插法、任意插入法、任意删除法、打印数据(从左至右、从右至左)等。
void及void指针含义的深刻解析
void及void指针含义的深刻解析,C/c++中void的使用方法。
void指针小结
许多初学者对C/C++诧言中的void及void指针类型丌甚理解,因此在使用上出现了一些错诨。本文将对void关键字的深刻含义迚行解说,并详述void及void指针类型的使用方法不技巧。
int main和int main(void)区别
在c++中int main()和int main(void)是等效的,但在c中让括号空着代表编译器对是否接受参数保持沉默。在c语言中main()省略返回类型也就相当说明返回类型为int型,不过这种用法在c++中逐渐被淘汰。虽然Void main()在很多系统都适用,但他毕竟不是标准的,所以应该避免这种用法


