`

C语言之函数的参数传入顺序

 
阅读更多

调用约定(Calling Conventions)定义了程序中调用函数的方式。

见:http://www.programlife.net/function-call-convention-styles.html

 

c/c++语言默认使用cdecl调用约定。参数传递从右至左,主调函数负责在函数调用之后恢复堆栈指针,因此可以支持可变参数。

#include <stdio.h>
void test(int i, int j)
{
    printf("i=%d j=%d\n", i, j); 
}
int main(int argc, char **argv)
{
    int i = 0;
    test(i, ++i);
    return 0;
}

 如上述代码,运行结果为:i=1 j=1

分享到:
评论

相关推荐

    C语言经典入门教材+经典C语言习题

    非常适合C语言初学者的入门级教材,同时附带提供100道C语言经典习题,供初学者练习巩固提高。入门教材+经典习题可以说是C语言入门的倚天屠龙,可以减少C语言学习过程的许多弯路,达到事半功倍的效果,是初学者...

    c语言基础练习

    --实现函数,将传入的数字以颠倒的顺序打印出来(例如传入35,打印53) --实现两个字符串比较的函数,相等返回true,不相等返回false --实现函数,打印出所有百位数+个位数=十位数的三位数(例如132,1+2=3) --实现...

    《你必须知道的495个C语言问题》

    2.11 如何向接受结构参数的函数传入常量值?怎样创建无名的中间的常量结构值? 26 2.12 怎样从/向数据文件读/写结构? 27 结构填充 27 2.13 为什么我的编译器在结构中留下了空洞?这导致空间浪费而且无法与...

    你必须知道的495个C语言问题

    2.11 如何向接受结构参数的函数传入常量值?怎样创建无名的中间的常量结构值? 2.12 怎样从/向数据文件读/写结构? 结构填充 2.13 为什么我的编译器在结构中留下了空洞?这导致空间浪费而且无法与外部数据文件...

    你必须知道的495个C语言问题.pdf

    2.11 如何向接受结构参数的函数传入常量值?怎样创建无名的中间的常量结构值? 2.12 怎样从/向数据文件读/写结构? 结构填充 2.13 为什么我的编译器在结构中留下了空洞?这导致空间浪费而且无法与外部数据文件进行...

    C语言FAQ 常见问题列表

    o 3.8 如何向接受结构参数的函数传入常数值? o 3.9 怎样从/向数据文件读/写结构? o 3.10 我的编译器在结构中留下了空洞, 这导致空间浪费而且无法与外部数据文件进行 "二进制" 读写。能否关掉填充, 或者控制结构...

    C++根据传入的函数指针来解析需要的参数(推荐)

    C++可以根据传入的函数指针,获取自己需要的参数类型,然后根据参数源中获取需要的参数,这里我用tuple作为演示,不过,只要可以根据序号,或者顺序方式等获取实参,都可以使用类似的方式实现: 先给出一个辅助函数...

    你必须知道的495个C语言问题(PDF)

    2.8 如何向接受结构参数的函数传入常数值? . . . . . . . . . . . . . . 8 2.9 怎样从/向数据文件读/写结构? . . . . . . . . . . . . . . . . . . . 9 2.10 我的编译器在结构中留下了空洞, 这导致空间浪费而且...

    C语言课程设计图书管理系统课程设计报告.doc

    其 他函数调用时只需传入顺序表头即可。 (3)、int main(void);这五个函数时整个图书管理系统的全部菜单函数,Book_Entering();为系统 主界面,进入时可选择进入程序和退出程序。menu1();为进入程序时显示的功能菜单...

    static 用法

    现A先获得执行机会, 执行IpToStr(), 传入的参数是0x0B090A0A, 顺序执行完应该返回的指针存储区内容是:”10.10.9.11”, 现执行到⑥时, 失去执行权, 调度到B线程执行, B线程传入的参数是0xA8A8A8C0, 执行至⑦, 静态...

    FakeCc:自制编译器FakeCc

    结构体不能作为函数参数传入,也不能作为函数返回值; 头文件导入改成了import的形式; if while for goto break等循环控制语句均实现; 删除了堆上分配内存的功能(allocate),内存都在函数栈上分配; 默认在X86平台上编译...

    Google C++ 编码规范

    定义函数时,参数顺序为:输入参数在前,输出参数在后。 C/C++ 函数参数分为输入参数和输出参数两种,有时输入参数也会输出(译者注:值被修改时)。输入参数一般传值或常数引用(const references),输出参数或...

Global site tag (gtag.js) - Google Analytics