C语言学习--函数

函数的作用:(1) 提高代码的复用率; (2)提高程序的模块性

函数的分类:

(1)系统库函数, 标准c库: 导入头文件--声明函数  , 根据函数原型调用

(2)用户自定义

函数定义:

包含函数原型:返回值类型, 函数名,形参列表, 函数体(大括号一对,具体代码实现)

int add(int a, int b, int c)  : int a 就是形参

函数调用:

包含函数名(实参列表),在调用时候,传参必须严格按照形参格式填充, 即参数的个数, 类型, 顺序都必须一致

int a = add(4,28);

函数声明:要求在函数调用之前, 编译器必须见过函数定义。 负责, 需要函数声明

包含 函数原型(返回值类型, 函数名,形参列表)+“;”

隐式声明, 如果在调用函数的时候, 编译器在此之前没有找到这个函数的定义, 就会自动做隐式声明

隐式声明的格式是这样的: 返回值类型都是int吗,根据调用的语句, 自动补全函数名和形参列表。【不要依赖隐式声明】

#include<stdio.h>

int main(void)
{
    int result;
    result = add(1,2);// 编译器会自动声明函数 int add(int a, int b); 这就是函数原型, 隐式声明, 默认都是声明成int 函数, 所以如果下面的函数是void add(), 那声明就会出错
    printf("the add result is %d\n", result);
}

int add(int a, int b) 
{

    int result;
    result = a + b;
    return result;
}
the add result is 3

这种情况下, 也能运行成功

但是如果把int add( ) 变成void add(),上面的code 就会出错

 

 这里的type冲突是因为, 函数隐式声明会把add 函数变成int 型, 但是自己的code 没有声明, 写的是float, 所以会冲突

#include<stdio.h>

int add(int a , int b); //函数声明, 函数原型+;

int main(void)
{
    int result;
    result = add(1,2);
    printf("the add result is %d\n", result);
}

int add(int a, int b)//这是函数原型
{

    int result;
    result = a + b;
    return result;
}

the add result is 3

 

posted @ 2022-10-23 15:04  朵朵奇fa  阅读(83)  评论(0编辑  收藏  举报