符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
呃···
创新互联公司专注于威县网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供威县营销型网站建设,威县网站制作、威县网页设计、威县网站官网定制、微信小程序开发服务,打造威县网络公司原创品牌,更为您提供威县网站排名全网营销落地服务。
看书会比较明白吧···
1、函数声明: 返回类型 函数名(形参1,形参2,形参3);(以此类推,有几个参数写几个)
2、函数调用:函数名 (实参1,实参2,实参3); (以此类推,有几个参数写几个)
3、函数算法:返回类型 函数名(形参1,形参2,形参3)(以此类推,有几个参数写几个)
{
}
如果你在main()前定义函数的话,就不需要也不能声明函数了,如果在main()后定义函数需要在main前声明函数.
#includestdio.h
int myfunction(int t);//声明函数
int main() {
int t=3;
myfunction(t);//调用函数.
return 0;
}
int myfunction(int t) {
int v = t ;
printf("%d\n", v);
}
#includestdio.h
int myfunction(int t) { //在main()前定义函数不需要声明
int v = t ;
printf("%d\n", v);
}
int main() {
int t=3;
myfunction(t);
return 0;
}
每一个函数调用都会分配函数栈,在栈内进行函数执行过程。调用前,先把返回地址压栈,然后把当前函数的esp指针压栈。
例子代码如下所示:
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