函数定义、函数声明、函数原型
函数定义、函数声明、函数原型;变量声明、变量定义;类型声明、类型定义
- 1.函数定义、函数声明、函数原型
- 2.变量声明、变量定义
- 3.类型声明、类型定义
1.函数定义、函数声明、函数原型
函数声明
中不但包含“函数原型声明
”,也包含“函数定义
”和老式的“函数类型声明
”。
函数类型声明
(Function type declaration)。声明了函数名
是一个函数及其返回值的类型
。(没对参数进行描述)函数原型
式的函数类型声明:声明了函数名
、返回值的类型
、参数的类型(和个数)
函数定义
:写了函数体的函数声明。不过函数体结束不带
;号
。
函数定义带有函数体,函数声明≈函数原型
- 当
函数声明
宣示了函数的名字、参数类型和个数、返回值类型,它就叫函数原型式声明
,即函数原型
。- 只有
带函数体的声明才叫定义
。函数定义本身就是一种函数声明
,只不过
其函数体后不加;
号`不带函数体的函数声明`应该如何称呼呢?在C语言中,它们叫被做“函数类型 声明”(Function type declaration)。`函数类型声明`最主要的特点是声明了 `函数名`是一个函数及其`返回值的类型`,如果也声明了参数的类型,则是 `函数原型`式的函数类型声明。现代的C语言的函数定义和函数类型声明 都采用函数原型式的风格,C99把旧的非原型形式视为过时。
函数原型
后面由分号;
结尾。- 由于有 Old Style C 语法的存在,
并非所有函数声明都包含完整的函数原型
如void threeline();
这个声明并没有明确指出参数类型和个数,所以不算函数原型。
函数原型式声明:
int fun(int a, int b); // 函数名字fun,返回类型 int,有2个int 参数
函数原型式声明:
int fun(int, int); // 函数名字fun,返回类型 int,有2个int 参数
函数原型式声明:
fun(int, int); // 函数名字fun,默认返回类型(其实也是int),有2个int 参数
例如函数声明和定义:
int fun(int a, int b)
{return a+b;
}// 花括号里是函数体,结束处没有分号,有形参名。
知识点:函数定义也具有对函数名的类型加以说明的效果,因此从这个意义上来说,
函数定义也是一种对函数类型的说明
。这种办法可以检查出函数调用时在参数个数和类型方面的错误。
但是,用这种办法说明函数名并不好
,因为这样做在编程时还需要考虑应该把哪个函数定义写在前面,哪个写在后面的问题。
假如函数A调用函数B,函数B调用函数C,函数C又调用函数A,究竟如何安排函数定义的顺序就会让人感到无所适从。此外这种办法也不利于代码的组织
,在由多个源文件组成的源程序时,这种写法就更会捉襟见肘、漏洞百出。因此
,在1990年,C标准借鉴C++语言规定了一种新的说明函数名的方法,这就是函数原型(Function Propotype)
式说明函数类型的方法。
2.变量声明、变量定义
- 只有
分配存储空间的变量声明才叫变量定义
,
其实函数也是一样,编译器只有见到函数定义才会生成指令,而指令在程序运行时当然也要占存储空间。那么没有函数体的函数声明有什么用呢?它为编译器提供了有用的信息,编译器在翻译代码的过程中,只有见到函数原型(不管带不带函数体)之后才知道这个函数的名字、参数类型和返回值,这样碰到函数调用时才知道怎么生成相应的指令,所以函数原型必须出现在函数调用之前
,这也是遵循“先声明后使用”的原则。
3.类型声明、类型定义
声明一个类型是不分配存储空间的
,
类型声明==“类型定义”
函数定义、函数声明、函数原型相关推荐
- 统计学生平均成绩。使用静态成员函数。如果不将average函数定义为静态成员函数行不行?程序能否通过编译?需要作什么修改?为什么要用静态成员函数?请分析其理由。
统计学生平均成绩.使用静态成员函数.如果不将average函数定义为静态成员函数行不行?程序能否通过编译?需要作什么修改?为什么要用静态成员函数?请分析其理由. 答:不将average函数定义为静态成 ...
- 函数定义说明与函数类型
1620-7 唐大智<2016年11月2日>[连续第三十三天总结] 标题:函数定义说明与函数类型 关键词:函数定义100%,函数类型50% 内容:(A)函数定义有几点说明. (1)函数名 ...
- C程序设计基础(5):函数基础详解(函数定义、调用、原型、参数)
上一节中,我们学习了有关数组和字符串的常用方法.数组和字符串的加持大大降低了我们命名和使用变量的复杂程度,节约了代码量,但这还不够.程序编写过程中,我们往往会遇到一段相似的代码在多个不同的位置出现 ...
- (小白)函数一: 声明函数的方法—语句定义法和表达式定义法的区别
一.函数的定义: 在说明什么是函数前先举一个小例子: 大家都知道印刷术是我国的四大发明(科普一下:中国四大发明:造纸术.印刷术.火药.指南针)之一,之所以有印刷术,是因为重复的抄写既浪费时间,效率又很 ...
- 初学__Python——Python 最简单的函数—用 lambda 声明函数
用 lambda 表达式来声明函数,是Python中一类比较特殊的声明函数的方式,lambda 来源于 LISP 语言,使用 lambda 可以声明一个匿名函数.所谓匿名函数是指所声明的函数没有函数名 ...
- JavaScript 函数定义+内置函数使用+array对象+object类型
文章目录 函数定义 random() setInterval() setTimeout() 数组对象 object 函数定义 两种格式: function 自定义函数名称(参数1,参数2,...,参数 ...
- python如何声明函数_python如何声明函数
Python函数的定义 定义函数,也就是创建一个函数,可以理解为创建一个具有某些用途的工具.定义函数需要用 def 关键字实现,具体的语法格式如下:def 函数名(形参列表): //由零条到多条可执行 ...
- python查看函数定义_从函数内函数定义看python的函数实现
一.问题 在C/C++中,函数的定义本质上是在编译阶段完成,而函数调用是由链接完成.但是对于python这种语言,函数的定义和调用都是由解释器在运行时完成,或者说,解释器在执行函数定义的时候,同样是生 ...
- python中函数定义_Python中函数的定义与使用
原博文 2020-02-27 16:46 − 一.函数基本定义 定义函数的目的是为了让一段代码可以被重复使用 函数定义的语法: def 函数名([参数,参数.....]): 函数主体代码(多行代码) ...
- python函数定义语法_python 函数基础 定义
一.函数介绍 1.为什么要有函数? 没有函数的代码组织结构不清晰,可读性差. 代码冗余 管理维护难度大,扩展性 2.什么是函数? 具备某一个功能的工具就是程序中的函数. 事先准备工具的过程就是:函数的 ...
最新文章
- 黑马程序员_Java面向对象_包
- 数据结构(四)之单链表查找中间结点
- iOS - UIScrollView
- java jtable不可编辑_java – 使JTable单元不可编辑
- SpringBoot2.1.5(18)--- 国际化配置,SpringBoot Locale 国际化使用方法
- .NET/C# 优化心得
- Linux升级python版本
- Matlab2016a安装教程
- 用python解决放苹果问题_放苹果
- apache ftpserver 被动模式配置
- linux udp 端口测试,RAKsmart:Linux下TCP/UDP 端口测试及验证方法说明
- 007:Mapbox GL实现地图地点搜索定位功能
- 从零开始搭建家庭网络:软路由实战经验分享(一)
- 字母对应的日期 moment Element JAVA oracle mysql的日期格式
- ZJUT online OJ c++通关模拟题(problem1335-problem1516) 题解
- 后端进度报告(2018.5.17)
- WHQL认证资讯:关于Windows硬件开发者仪表盘
- TFS:TF30042数据库已满 the database is full. contact you team foundation server administrator
- 深度linux系统live版,【Deepin linux下载】Deepin Linux官方下载 v20 最新免费版(ios+Live)-开心电玩...
- 三维坐标变换(旋转矩阵旋转向量)