c/c++之函数与预处理

本文详细介绍了C/C++编程中的函数声明、定义、调用和参数传递机制,涵盖内联函数、重载函数、默认参数、函数指针和预处理指令等内容。此外,还讨论了作用域、生命周期、全局变量和局部变量的管理,以及编译预处理的重要性,如宏定义、文件包含和条件编译。
摘要由CSDN通过智能技术生成

本章重点:函数声明,函数定义,传参机制,递归函数,编译预处理,作用域和生命周期
一、【函数的声明】
    好处: 当函数定义在前,调用在后时,可以省略函数的声明,但这不是好的变成习惯,因为这样做,程序中函数出现的顺序就不能随意改变,维护起来就非常困难,如果有新的开发者参与进来也非常困难。所以好的编程时尽量:
    将主函数放在程序的起始位置,并先声明函数原型。

    目的:告诉编译器该函数类型,参数个数和类型,检查调用是否正确,所以不会在这时分配内存给函数。
    声明方式:函数类型 函数名(形参类型 参数名);
    warining: 注意声明是一条语句必须以分好结尾, 函数形参的参数名可以省略。
              函数类型,函数名,形参类型,形参个数,形参顺序必须与函数定义相同。
              当调用在前,定义在后时必须要声明函数。
              因为main函数事主函数不会被其它函数调用,所以不用声明。
二、【函数定义】
    定义方式: 数据类型 函数名(形参表){}
    warning: 形参格式 参数类型(基本类型|指针类型|构造类型|类) 形参名 ,形参只是一个符号,并不占据内存空间,指标值参数出现的顺序。
             但函数没有返回值时用 void
             函数体   不能嵌套定义函数,既不能在一个函数体内定义另一个函数
    空函数   数据类型 函数名(){} 其实这里我更推荐这样定义 void 函数名(){}往往用来占位
    return;  return [(表达式)];括号可以省略,离开当前代码块,返回特定数据给主调函数,一般情况下返回类型应该与函数类型一致,如果不一致系统间进行类型转             换,并以函数类型为准;只能返回一个值;无返回值可以不用return语句,但不推荐;

三、【函数调用】
    调用方式: 函数名(实参表);
    warning : 参数类型和顺序要与生命的一样,可以使常量或者变量
四、【参数传递】
    【变量值调用】:其实是系统将实参考被一个副本给参数。形参是普通变量名,实参也是普通变量名。
    【引用传递】  :形成拿生命为引用类型只要在标识符前边加个&,实参也是普通变量名。int &就是一个引用类型。修改不再作用于局部,不再有高额的时间和空间开                   销。
    【变量地址传递】:形参必须是可以接受地址的指针变量,实参是变量的储存地址。
    【数组的传递】:形参字需要在标识符后边加上一个[]即可,一般数组要把元素个数也作为参数,字符数组不用。形参数组类型应该和是参数组类型一样。实参是数组                           名。形参为二维数组名时,可以省略第一维的大小,但不能省略第二维的大小,或者两维都省略。因此int array[][],int array[2][]及int *array                           都是错误的。当然形参也可以使用指针变量接受数组参数。也可以用引用类型,typedef int array[10];然后使用array来定义数组的引用。函数声                            明void max(array &d,int d);此函数的一个参数可以接收int a[10];这种数组。
五 【函数的指针】
        定义:一个函数在编译时被分配一个入口地址(第一条指令的地址)可以将该地址非配给一个指针变量,这样,指针变量持有该函数入口地址,他就指向了该函数。
        形式:数据类型 (*指针变量名) (形参类型);
        [code]
        int (*funp)(int a,int b);
        int func(int a,int b){}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值