C语言中如何用一个程序调用另一个程序,两个程序都是.c文件。

Python012

C语言中如何用一个程序调用另一个程序,两个程序都是.c文件。,第1张

你把被调用的.c文件中的main()函数改成其他名字

如fun();

然后在另一个.c文件的main()函数中调用fun();

只要保证一个C工程只有一个main()做入口点就行了,至于保留哪个main函数,那就要看你程序的逻辑了,注意main函数是入口点的概念

我想C语言中调用函数分以下内几部:\x0d\x0a1)根据调用的函数名找到函数入口;\x0d\x0a2)在栈中审请调用函数中的参数及函数体内定义的变量的内存空间\x0d\x0a3)函数执行完后,释放函数在栈中的审请的参数和变量的空间,最后返回值(如果有的话)

例子代码如下所示:

int Add(int x, int y) {    int sum

sum = x + y   return sum

}void main() {    int z

z = Add(1, 2)   printf("z=%d\n", z)

}

下面分析一下 Add函数的调用过程。

首先断点在z = Add(1, 2)处, 反汇编如下所示:

int z

z = Add(1, 2)002C141E 6A 02                push        2  002C1420 6A 01                push        1  002C1422 E8 60 FC FF FF       call        002C1087  

002C1427 83 C4 08             add         esp,8  002C142A 89 45 F8             mov         dword ptr [ebp-8],eax

首先压入参数1和2:

002C141E 6A 02                push        2  002C1420 6A 01                push        1  

通过观察ESP可以看到参数从右到左依次入栈,ESP往低内存方向移动8字节:

ESP=0025FCCC

...0x0025FCAA  00 00 78 4c 33 00 bc fc 25 00 a9 fe aa 0f 78 4c 33 00 c8 fc 25 00 3d 5a b2 0f *** 01 00 00 00 02 00 00 00 ***0x0025FCCC  00 00 00 00