私はいくつかの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)];
それはうまくいきます。
私はautotoolsが採用しているすべてのハックに精通しているわけではありませんが、どちらもコンパイル時に値を決定できるはずです。
なぜ最初のものが失敗するのですか?