c - 函数的参数是如何执行的?

标签 c

<分区>

Possible Duplicate:
function parameter evaluation order

假设我有一个有 4 个参数的函数。首先考虑执行哪个参数以及为什么。

我试图理解 , 运算符用于函数原型(prototype)的重要性。按照规则,它是最先考虑的最后一个变量吗?

最佳答案

如果我们有一个具有以下原型(prototype)的函数:

int function(int x, int y, int z);

我们这样调用它:

function( something_a(), something_b(), something_c() );

我们无法推测something_asomething_bsomething_c 的执行顺序。

另一方面,我们可以按如下方式使用逗号运算符:

int main() {
    int x;
    something_a(), something_b();
    something_c();
}

在这种情况下,我们知道 something_a 将被调用,然后是 something_b,最后是 something_c

总而言之,函数调用中的逗号不是逗号运算符。

关于c - 函数的参数是如何执行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10690026/

相关文章:

c - 消息缓冲区的结构内存分配问题

c - 使用用户输入进行 malloc

c - 如何检查可变参数 __VA_ARGS__ 的有效性?

c - 链表编译时错误

c - 生成随机数的问题

c++ - 正确处理有符号和无符号值的比较

c - 增量运算符的问题

C undefined reference - 不是名称修改

在程序中间更改标准输出而不将先前的 printf 打印到控制台

c - 尝试调整 sscanf() 以忽略\n 和\t