本帖最后由 MarkAllenWeiss 于 2012-03-28 10:10 编辑
注意这是一个c项目中摘出来的片段- while(node != NULL)
- {
- if(node->key == 1722)
- {
- char dtime[50];
- struct tm tm;
-
- memset(&tm, 0, sizeof(struct tm));
- localtime_r(&node->time, &tm);
- strftime(dtime, 50, "%Y%m%d%H%M%S", &tm);
- printf("%s: %s\n", dtime, node->value);
- }
- node = node->next;
- }
复制代码 每次写类似上面的代码时, 都有些纠结, 局部变量如果声明在函数开始位置, 感觉距离太远, 体现
不出来它的作用.
但是函数体一旦大的话, 势必使用很多局部变量, 它们混在一起, 看着真是头疼.
同事见我像上面这么写, 说这不是c的规范, c++可以这么做. 当初我这么写确实是见c++代码中
这么玩, 学习c的时候确实没有这方面的例子.
不知道同事说的对不对, c中不允许这么做吗, 能够编译通过只是gcc的特性? |