day10函数

函数:

        函数的作用

        1.封装简化代有规律或重复性的代码,提高代码复用性

        2.划分模块,提高代码可读性

        函数的定义:

        返回值类型  函数名(形参类型1 arg1, 形参类型2 arg2,......)形参列表

        {

        }

        返回值类型: 返回值类型;

        函数名: 一种标识符;

        形参列表: 形式参数;

        函数返回值

eax寄存器

        EAX寄存器:累加器,在乘法和除法指令中被自动调用;在win32中,一般用在函数的返回值中。

注意事项

        1.当函数返回值类型不为void时, 必须写return 值否则是一个不确定的值;  为void时, 最好retuen; 
        2.当函数返回值类型不写时, 编译器默认为int类型;
        3.当函数返回值类型与实际返回的值的类型不一致时,以返回值类型为准,会发生数据类型隐式转换。

        函数的调用

                函数名(arg1, arg2, ......);实参列表

                arg1是一个值(常量、变量、表达式、函数调用)

        注意事项

        .当函数调用时传递的实际参数类型与形参不一致时,以形参类型为准,发生数据类型隐式转换;

        函数的嵌套调用

        1.被调函数在主调执行到被调函数的函数调用语句时被执行;
        2.被调函数执行完毕,返回到主调函数调用位置继续顺序执行;

        函数传参

        1. 值传递(赋值传递)
                实参将值拷贝给形参;形参的空间与主调内实参的空间互相独立,仅存在拷贝关系;
        2.全局变量传参
                利用全局变量的全局作用域,在两个函数间进行读写实现信息传递;
        3.数组传参;
                数组作为函数参数传递的时候传递的是空间的编号;
                arry(基地址)[1(偏移量)]

        函数的声明

        声明方式: 函数首部 + ‘;’
        在函数调用之前,需要函数的声明;
        声明和定义:
        定义一般会开辟对应空间;声明一般不会开辟对应空间;
        声明可以有多次, 定义只能有一次;      

        变量的存储类型


            1.auto(自动的变量、局部变量、 默认):存放在系统栈空间,由操作系统自动管理
    
            2.register(建议性: 寄存器变量):将数据变量存放在寄存器内;

            3.static(静态变量):
                (1) 修饰局部变量,称为静态变量,保存数据区,具有和全局变量一样的生存周期, 作用域不变
                (2) 修饰全局变量,不改变生命周期, 限制在本文件使用
                (3) 修饰函数, 限制在本文件使用    ;
            4.extern(外部变量)
                extern修饰全局变量,声明此变量的定义在外部源文件,
                extern修饰函数,声明此函数的定义在外部源文件,

       作用域与生命周期


       作用域:变量在程序中所能使用的范围
        局部变量:
            1.局部变量的作用域从定义开始到离他最近的花括号结束;
            2.作用域重叠时,最近的变量作用域会屏蔽教远的
        全局变量:
            全局变量的作用域,从定义开始到在整个.c结束;
        函数: 
            函数的作用域,从定义开始到在整个.c结束;如果调用不在作用域会产生隐式声明;需要提前声明
        
        生命周期: 变量从开辟内存到回收的整个过程;
        局部变量:
            从程序执行到定义时开辟内存空间,到离开作用域回收空间;
        全局变量:
            从编译阶段开辟内存空间(分配好了存储位置), 到整个应用程序结束回收空间;  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值