【发布时间】:2014-04-04 10:33:25
【问题描述】:
我想使用GMainLoop。我想知道使用全局变量还是局部变量更好。我想每 5 秒调用一次函数。它使用一些堆变量,我只想 malloc 一次。我有两个想法。我可以将所有参数放在一个结构中。但有时它会是 struct in struct in struct。因此,名称命名法将是复杂且可读性差的。我还可以使所有数据都变得全局化。它会是这样的:
typedef struct data_t
{
unsigned char *pUncompressStreamData;
unsigned char *pStartUncompressStreamData
analyzers_t analyzers;
GTree *tree;
}data_t;
main_loop(data_t data )
{
//data_mallocs and other stuff
}
int main()
{
data_t data;
g_timeout_add_seconds ( 5, main_loop, data);
/free all data member
}
或
unsigned char *pUncompressStreamData;
unsigned char *pStartUncompressStreamData
analyzers_t analyzers;
GTree *tree;
main_loop(data_t data )
{
//data_mallocs and other stuff
}
int main()
{
g_timeout_add_seconds ( 5, main_loop, NULL);
/free all data member
}
请给我线索。
【问题讨论】:
标签: c variables struct global-variables