C语言学习笔记 lesson14 函数
来源:互联网 发布:linux shell 输入参数 编辑:程序博客网 时间:2024/06/17 16:54
函数
函数是C语言的重要的组成部分,过程编程是将程序的执行过程一步步的分解成函数。
分解成函数方便进行工程的管理,方便多次调用。
组成
函数名称 (C语言中不能重复)
参数 (函数中需要的数据)
返回值
函数参数的传递过程
main函数和 其他函数各有栈针。当函数经过return后,函数的栈会清空。所以函数执行完后,函数中的局部变量就会失效。
#include<stdio.h>
int Greater(int first, int second) 接收两个int参数,从外部将值传递到内部
{
if (first > second)
{
return first; 必须直接返回直接类型的数据
}
else
{
return second;
}
}
int main()
{
int bignum = Greater(10, 100);
return 0;
}
main函数反汇编
int bignum = Greater(10, 100);
002216FE push 64h 函数是通过栈来传递的
00221700 push 0Ah
00221702 call _Greater (0221221h)
00221707 add esp,8
0022170A mov dword ptr [bignum],eax
return 0;
0022170D xor eax,eax
esp
0x00D7FCE0 c8 fd d7 00 main的栈底
0x00D7FCF0 46 10 22 00 返回的地址
0x00D7FCEC 64 00 00 00 传递的参数 100
0x00D7FCE8 0a 00 00 00 传递的参数 10
函数反汇编
int Greater(int first, int second)
{
00221690 push ebp
00221691 mov ebp,esp
00221693 sub esp,0C0h
00221699 push ebx
0022169A push esi
0022169B push edi
0022169C lea edi,[ebp-0C0h]
002216A2 mov ecx,30h
002216A7 mov eax,0CCCCCCCCh
002216AC rep stos dword ptr es:[edi]
if (first > second)
002216AE mov eax,dword ptr [first]
002216B1 cmp eax,dword ptr [second]
002216B4 jle Greater+2Dh (02216BDh)
{
return first;
002216B6 mov eax,dword ptr [first]
002216B9 jmp Greater+30h (02216C0h)
}
002216BB jmp Greater+30h (02216C0h)
else
{
return second;
002216BD mov eax,dword ptr [second]
}
}
指针:特殊的数据类型
里面存储的是内存地址,使用了指针,传递的就是地址
- C语言学习笔记 lesson14 函数
- C语言学习笔记(九)--函数
- IOS学习笔记06---C语言函数
- 【C语言学习笔记】qsort函数总结
- C语言的学习笔记2-函数
- C语言学习笔记:09_函数
- c语言学习笔记分享之函数
- C语言学习笔记8-函数
- c语言学习笔记17之函数
- 【C语言学习笔记】输出函数puts()
- C语言学习笔记-函数-郝斌
- C语言:函数笔记
- 【笔记-C语言】 函数
- IOS学习笔记07---C语言函数-printf函数
- IOS学习笔记07---C语言函数-scanf函数
- c语言学习笔记之函数指针和指针函数
- C语言学习笔记----伊能C语言学习笔记-----函数的副本机制
- C语言学习笔记-------伊能C语言学习笔记------静态函数初步
- C++函数参数带省略号
- Android N App分屏模式完全解析(上)
- 关于sql server游标的使用
- LabVIEW中的错误处理
- 电脑经验 win7打开cmd命令窗口
- C语言学习笔记 lesson14 函数
- php wamp 连接oracle数据库环境配置
- CSS 页面布局
- windows7+eclipse+hadoop2.5.2环境配置
- AAC音频格式分析
- yon用的插件
- 《视频直播技术详解》 系列之六:延迟优化
- php mysql_db_query()函数使用介绍
- Bootstrap布局框间间距问题