c语言函数怎么找参数 c语言中函数的参数

C语言函数参数

汇编代码gcc:

10年积累的成都网站制作、成都网站设计、外贸营销网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站设计后付款的网站建设流程,更有长顺免费网站建设让你可以放心的选择与我们合作。

第一个问题的汇编:

movl $0, %ebx

incl %ebx

incl %ebx

incl %ebx

movl %ebx, 8(%esp)

movl %ebx, 4(%esp)

movl %ebx, (%esp)

call _func

汇编显示,先将n自增了3次变为3,然后调用函数,因此都是3

第二个问题的汇编:

movl $3, 16(%esp)

movl $98, 12(%esp)

movl $2, 8(%esp)

movl $97, 4(%esp)

movl $1, (%esp)

call _func2

可以看出参数对应的栈地址应该是连续的

另外,这个程序在VC6下的结果完全不一样:

func for n++

   0          0          0

12ff2c     12ff30     12ff34

func for ++n

   3          2          1

12ff2c     12ff30     12ff34

func2

12ff24     12ff28     12ff2c     12ff30     12ff34

但是最后的地址也是连续的。

此类问题知道上问过多次了,可以说没有什么意义,结果与编译器实现相关,实际编程没有用处,除非写代码的人喜欢玩花俏

C语言怎么判断函数里有几个参数?

函数f有3个参数。(x,y)是一个逗号表达式,传递的实参是y。其它两个也是逗号表达式,传递的实参分别是c和4。即以上函数调用语句就相当于:f(y,c,4)。

c语言调用函数是怎么知道该调用哪个参数?

调用的时候如何填参数是取决于你的函数式如何定义的。

如下:如果定义为void fun() {...} , 那么调用的时候不需要传输参数。

如果定义为void fun2(int a) {....}, 那么调用的时候需要传入一个整数,如fun2(10) 或者一个int的变量。

如果定义了多个变量,如fun3(int a ,char c) 那么传入参数的顺序也需要和定义时的顺序一样,如fun3(10, 'a').


分享标题:c语言函数怎么找参数 c语言中函数的参数
网页路径:http://scjbc.cn/article/hjooii.html

其他资讯