相关疑难解决方法(0)

C++函数参数中的评估顺序

如果我们有这样的三个函数(foo,bar和baz)......

foo(bar(), baz())
Run Code Online (Sandbox Code Playgroud)

C++标准是否保证在baz之前评估条形码?

c++ standards

83
推荐指数
4
解决办法
2万
查看次数

C++中编译器和评估的参数顺序

好吧,我知道标准规定C++实现可以选择评估函数的哪个顺序参数,但是在实际影响程序的情况下是否有任何实现"利用"它的实现?

经典示例:

int i = 0;
foo(i++, i++);
Run Code Online (Sandbox Code Playgroud)

注意:我不是在找人告诉我评估的顺序不能依赖,我很清楚这一点.我只对任何编译器是否真的按照从左到右的顺序进行评估感兴趣,因为我的猜测是,如果他们做了很多写得不好的代码就会破坏(这是正确的,但他们仍然可能会抱怨).

c++ operator-precedence

59
推荐指数
4
解决办法
2万
查看次数

如何在函数调用中评估参数?

考虑以下代码:

void res(int a,int n)
{
    printf("%d %d, ",a,n); 
}

void main(void) 
{
    int i; 
    for(i=0;i<5;i++)
        res(i++,i);
    //prints 0 1, 2 3, 4 5

    for(i=0;i<5;i++)
        res(i,i++);
    //prints 1 0, 3 2, 5 4
}
Run Code Online (Sandbox Code Playgroud)

查看输出,似乎每次都不会从右到左评估参数.到底发生了什么?

c

3
推荐指数
1
解决办法
2200
查看次数

标签 统计

c++ ×2

c ×1

operator-precedence ×1

standards ×1