C/CPP Order of Evaluation

51 篇文章 2 订阅

1. C/CPP does not specifiy any order of evaluation of any PART of any expression

==> including function arguments 

==> but the sequential order of execution for the expressions is kept strictly

 see: Order of evaluation - cppreference.com

also: c++ - function parameter evaluation order - Stack Overflow

2. order of evaluation does not apply to the chained operations such as a + b + c

==> which is really compacted multiple expressions

==> whose sequential execution order depends on the associativity of the operator

see C++ Chain Operations_maxzcl的博客-CSDN博客

3. Though the functional arguments do not have defined evaluation order, they

==> have a push order, which is right to left, so that the first argument is on top of the stack; it is done so that variadic function like printf() in C can work properly

see https://cboard.cprogramming.com/cplusplus-programming/92214-stack-push-order-function-arguments.html

==> the declared order of arguments does matter when default arguments are involved; it is usually more convenient to put the most frequently changed arguments at the front

see Does order of parameters matter? - C++ Forum 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值