C89 (C90, ANSI-C) 不允许将变量声明与代码混合。我想知道变量初始化在多大程度上被视为“代码”。
也许只有用常量表达式初始化才有效?
具体来说,如果我正在编写 C 代码并且我想安全地玩(最大化与 ANSI-C 编译器的兼容性),是否应该认为以下内容是安全的?
void f1(void) {
int x = 30;
int y = 40;
int z;
/* ... */
}
void f2(void) {
int x = 30, y = 40;
int z;
/* ... */
}
#define MYCONST (90)
void f3(void) {
int x = 3;
int y = 4 + MYCONST;
int z;
/* ... */
}
void f4(void) {
int x = 3;
int y = time(NULL);
int z = 10 + x;
/* ... */
}