假设存在一个用来返回以下格式的消息 说一个函数:关于产品传递一个函数创建一个变量
struct message
{
void* data;
}msgG;
这将是提取数据的最佳方式(即获取消息访问代码FUN1): 1-使用全局变量 2-使用双指针(指针的指针)
//Note: msgG is the global variable
void fun2(struct message **ptr)
{
**ptr = msgCreate(); // msgCreate returns a type struct message;
msgG = msgCreate();
}
void fun1()
{
....
.....
struct message *ptr;
ptr = malloc(sizeof(struct message));
fun2(&ptr);
...
}
现在,我们已经存储在msgG消息和PTR? 哪一个更好?使用全局变量或访问指针,因为一个分配在堆中,另一个分配在bss中(不确定这一点)? 有没有其他办法来处理这种情况?
你能否给出更多的上下文?我不确定我是否足够了解情况以提出意见。 – Juan 2009-12-14 04:26:56
@juan:msgCreate()通常像一个来自网络程序的recv()。 我在说abt处理收到的消息。 – tomkaith13 2009-12-14 04:32:44