假設存在一個用來返回以下格式的消息 說一個函數:關於產品傳遞一個函數創建一個變量
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