这种 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 扩展。如果你想要最大的便携性,你应该避免它。