这种 C 语法的可移植性如何?
How portable is this C syntax?
我知道 GCC 和 Clang 可能接受这种语法,但是如果我为常见的 5 个平台制作游戏(Mac、Windows、Linux、iOS, Android(Java)) 但如果我在 Android 上将 C 变为 运行 可能是通过桥接 Java 和 C,这有多便携?应该避免这种情况吗?
我知道这是一个糟糕的功能,因为简单的 return num*num;
就足够了,但是我应该避免使用这种语法吗?
int square(int num) {
int x = ({
int y = num;
y*y;
});
return x;
}
这不是标准 C。它是一个名为 Statement Expressions 的 GNU C 扩展。如果你想要最大的便携性,你应该避免它。
我知道 GCC 和 Clang 可能接受这种语法,但是如果我为常见的 5 个平台制作游戏(Mac、Windows、Linux、iOS, Android(Java)) 但如果我在 Android 上将 C 变为 运行 可能是通过桥接 Java 和 C,这有多便携?应该避免这种情况吗?
我知道这是一个糟糕的功能,因为简单的 return num*num;
就足够了,但是我应该避免使用这种语法吗?
int square(int num) {
int x = ({
int y = num;
y*y;
});
return x;
}
这不是标准 C。它是一个名为 Statement Expressions 的 GNU C 扩展。如果你想要最大的便携性,你应该避免它。