C 同一行上函数调用的求值顺序

C 同一行上函数调用的求值顺序,c,C,我有一段代码: int get() { static int i = 1; return i++; } int main(int argc, char *argv[]) { printf("%d %d %d\n", get(), get(), get()); return 0; } 我以为输出会给我1233,但它会返回321。所以我的问题是,评估的顺序是如何计算的?我了解到它取决于编译器,因此它可以是上述任何一种,但我不太确定答案。函数参数的求值顺序未指定,这

我有一段代码:

int get()
{
    static int i = 1;
    return i++;
}

int main(int argc, char *argv[])
{
    printf("%d %d %d\n", get(), get(), get());
    return 0;
}

我以为输出会给我1233,但它会返回321。所以我的问题是,评估的顺序是如何计算的?我了解到它取决于编译器,因此它可以是上述任何一种,但我不太确定答案。

函数参数的求值顺序未指定,这意味着要获取的三个调用可以以任何顺序执行。如何指定首先求值的函数参数?是:使用单独的变量。int arg1=get;int arg2=get;int arg3=get;然后使用printf中的参数。就这样。