我正在使用一些 autoconf 的东西,并且有一个测试包括以下内容:
static int test_array [1 - 2 * !((((float)((int)((float)1.4))) == ((float)1.4)) >= 0)];
这失败了:
错误:“test_array”的存储大小不是恒定的
但是当我将其更改为:
static int test_array [1 - 2 * !((((int)((int)((int)1.4))) == ((int)1.4)) >= 0)];
它工作正常。
我对自动工具使用的所有技巧都不是很熟悉,但这两种方法对我来说似乎都应该在编译时确定。
为什么第一个失败?