首页 > 其他分享 >C语言学习--函数

C语言学习--函数

时间:2022-10-23 15:11:36浏览次数:58  
标签:函数 -- C语言 int add result 声明 隐式

函数的作用:(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

 

标签:函数,--,C语言,int,add,result,声明,隐式
From: https://www.cnblogs.com/shunguo/p/16818591.html

相关文章

  • Strrocks的参数设置
    查看所有的参数showvariableslike"%%";查看cbo_enable_low_cardinality的参数showvariableslike"%cbo_enable_low_cardinality%";参数设置setglobalcbo_enable_low_......
  • 第19组 chap5 函数与递归 学习总结
    本周我们主要学习了c语言中的自定义函数与递归算法。我们了解到C语言中算法主要是依靠函数而实现的,而自定义函数与函数间的相互调用能帮助我们更好地实现目标。   ......
  • 求引路#新手#
      我现在是一名大一生,很小就喜欢数学,计算,科技之类的。现在在学计算机语言C语言,但对现在的我来说很迷茫。我不知道C语言是干嘛的,也不知道接下来该学些什么,我不想成为一名......
  • 文件与文件系统
    ​FCB(文件控制块)文件是什么?文件是对  磁盘的抽象所谓文件  是指  一组带标识(标识即为文件名)的、在逻辑上有完整意义的信息项的序列。信息项:构成文件内容的基本......
  • 文件属性与文件目录
    文件属性:文件控制块为管理文件而设置的数据结构,保存管理文件所需的所有有关信息              (文件属性或元数据)常用属性文件名,文件号,文件大小,文件地址......
  • 字节实习6个月后,我劝你至今0offer赶紧去实习
    首先摆出来实习证明镇楼,我可不是标题党,我是真的实习了六个月。适用人群假如你是一个已经有了多段实习经历,只是因为运气不好,那么大可不必把时间花在实习上,继续海投海面才......
  • MILIANKE-CZ06-676-7030/7035/7045核心模块硬件手册
    1产品概述    自2017年MZ7030/MZ7035/MZ7045系列开发平台发布以来,该系列开发平台和核心模块经过多次迭代升级,在工业自动化、水利电力控制设备、医疗图像设备等领域广......
  • 有哪些APP安全小测试
    app安全测试方法小百科​随着无线网络和移动通信技术的发展,智能手机功能日趋强大,因此也将APP市场带动了起来。但是随着手机操作系统日益标准化,网络出击手段不同往日,黑客已经......
  • 只需百十行代码,为你的Web页面增加本地文件操作能力,确定不试试吗?
    笔者开源了一个Web思维导图mind-map,数据默认是存储在localstorage里,如果想保存到本地文件,需要使用导出功能,下次打开再使用导入功能,编辑完如果又想保存到文件,那么又需要从重......
  • 在k8s集群基于nfs共享存储部署jenkins单体服务
    一、准备jenkins镜像dockerpulljenkins/jenkins:2.374dockertagjenkins/jenkins:2.374harbor.magedu.net/magedu/jenkins:2.374dockerpushharbor.magedu.net/mage......