C语言整理:4.1 函数

        函数,简而言之就是一个具有一定功能的代码块,给定输入,可以给出一个输出。

        一般学习一门语言,都会从一句神奇的语句开始——“Hello World!”,C语言也不例外,C语言的Hello World程序如下,其中的main就是一个函数,通过花括号{}来囊括了函数体,整个函数,只实现了在屏幕上打印输出"Hello World!"字符串。其中的\n是转义的换行符。

#include <stdio.h>

int main(void)
{
    printf("Hello World!\n");
    return 0;
}

        一般来说,一个函数的定义,分为如下几个部分。

        其中限定修饰符修饰函数的属性,包括static、inline、static inline等。

限定修饰符 返回值类型 函数名(参数声明表)
{
    声明和语句
}

        返回值类型需要在函数体(即里面的声明和语句)里面给出,使用"return 返回值"给出。如果一个函数不返回值,则返回值类型定义为void,如果没有显示指定,一般编译器默认返回值类型为int。

        参数声明表给函数调用者提供函数输入,参数声明表可以定长,可以变长,C语言支持变长参数的函数,这里不错赘述,比如printf就是一个变长参数的函数。参数声明表里的参数可以加限定修饰符,比如const、restrict等,用于表示函数入参的属性。

        一个函数里面可以调用别的函数,比如这里main函数里面就调用了printf函数,用于打印字符串。   当然也可以在这个函数里面调用函数本身,这个调用方式叫做递归,为了防止无休止的递归,在递归调用时需要指出递归的停止条件。

        如果别的函数要调用该函数,如果在相同文件且被调用函数在调用者函数的上方,则不需要声明函数。否则,需要声明这个函数。函数声明方式如下。

限定修饰符 返回值类型 函数名(参数声明表);

        如果函数在不同的.c文件里实现,那么需要在限定修饰符里加上extern。

        参数声明表里面可以不指出参数具体的名称,而只说明函数参数的类型。

        下面给出一个例子,汇总说明一下。

int sum(int, int); // sum函数不在calculator前面,这里需要声明
extern int multi(int a, int b); // 这里是声明,该函数定义在另外的文件里面

int sub(int a, int b) // sub函数在calculator前面,可以不进行声明,直接调用
{
    return (a - b);
}

static inline int div(int a, int b) // 只提供给当前文件的函数,用static修饰;编译时展开,用inline修饰
{
    return (a / b);
}

int calculator(int a, int b)
{
    printf("sum = %d\n", sum(a, b));
    printf("sub = %d\n", sub(a, b));
    printf("multi = %d\n", multi(a, b));
    printf("div = %d\n", div(a, b));
}

int sum(int a, int b)
{
    return (a + b);
}

        

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值