函数定义、函数声明、函数原型;变量声明、变量定义;类型声明、类型定义

  • 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.类型声明、类型定义

声明一个类型是不分配存储空间的

类型声明==“类型定义”

函数定义、函数声明、函数原型相关推荐

  1. 统计学生平均成绩。使用静态成员函数。如果不将average函数定义为静态成员函数行不行?程序能否通过编译?需要作什么修改?为什么要用静态成员函数?请分析其理由。

    统计学生平均成绩.使用静态成员函数.如果不将average函数定义为静态成员函数行不行?程序能否通过编译?需要作什么修改?为什么要用静态成员函数?请分析其理由. 答:不将average函数定义为静态成 ...

  2. 函数定义说明与函数类型

    1620-7  唐大智<2016年11月2日>[连续第三十三天总结] 标题:函数定义说明与函数类型 关键词:函数定义100%,函数类型50% 内容:(A)函数定义有几点说明. (1)函数名 ...

  3. C程序设计基础(5):函数基础详解(函数定义、调用、原型、参数)

      上一节中,我们学习了有关数组和字符串的常用方法.数组和字符串的加持大大降低了我们命名和使用变量的复杂程度,节约了代码量,但这还不够.程序编写过程中,我们往往会遇到一段相似的代码在多个不同的位置出现 ...

  4. (小白)函数一: 声明函数的方法—语句定义法和表达式定义法的区别

    一.函数的定义: 在说明什么是函数前先举一个小例子: 大家都知道印刷术是我国的四大发明(科普一下:中国四大发明:造纸术.印刷术.火药.指南针)之一,之所以有印刷术,是因为重复的抄写既浪费时间,效率又很 ...

  5. 初学__Python——Python 最简单的函数—用 lambda 声明函数

    用 lambda 表达式来声明函数,是Python中一类比较特殊的声明函数的方式,lambda 来源于 LISP 语言,使用 lambda 可以声明一个匿名函数.所谓匿名函数是指所声明的函数没有函数名 ...

  6. JavaScript 函数定义+内置函数使用+array对象+object类型

    文章目录 函数定义 random() setInterval() setTimeout() 数组对象 object 函数定义 两种格式: function 自定义函数名称(参数1,参数2,...,参数 ...

  7. python如何声明函数_python如何声明函数

    Python函数的定义 定义函数,也就是创建一个函数,可以理解为创建一个具有某些用途的工具.定义函数需要用 def 关键字实现,具体的语法格式如下:def 函数名(形参列表): //由零条到多条可执行 ...

  8. python查看函数定义_从函数内函数定义看python的函数实现

    一.问题 在C/C++中,函数的定义本质上是在编译阶段完成,而函数调用是由链接完成.但是对于python这种语言,函数的定义和调用都是由解释器在运行时完成,或者说,解释器在执行函数定义的时候,同样是生 ...

  9. python中函数定义_Python中函数的定义与使用

    原博文 2020-02-27 16:46 − 一.函数基本定义 定义函数的目的是为了让一段代码可以被重复使用 函数定义的语法: def 函数名([参数,参数.....]): 函数主体代码(多行代码) ...

  10. python函数定义语法_python 函数基础 定义

    一.函数介绍 1.为什么要有函数? 没有函数的代码组织结构不清晰,可读性差. 代码冗余 管理维护难度大,扩展性 2.什么是函数? 具备某一个功能的工具就是程序中的函数. 事先准备工具的过程就是:函数的 ...

最新文章

  1. 黑马程序员_Java面向对象_包
  2. 数据结构(四)之单链表查找中间结点
  3. iOS - UIScrollView
  4. java jtable不可编辑_java – 使JTable单元不可编辑
  5. SpringBoot2.1.5(18)--- 国际化配置,SpringBoot Locale 国际化使用方法
  6. .NET/C# 优化心得
  7. Linux升级python版本
  8. Matlab2016a安装教程
  9. 用python解决放苹果问题_放苹果
  10. apache ftpserver 被动模式配置
  11. linux udp 端口测试,RAKsmart:Linux下TCP/UDP 端口测试及验证方法说明
  12. 007:Mapbox GL实现地图地点搜索定位功能
  13. 从零开始搭建家庭网络:软路由实战经验分享(一)
  14. 字母对应的日期 moment Element JAVA oracle mysql的日期格式
  15. ZJUT online OJ c++通关模拟题(problem1335-problem1516) 题解
  16. 后端进度报告(2018.5.17)
  17. WHQL认证资讯:关于Windows硬件开发者仪表盘
  18. TFS:TF30042数据库已满 the database is full. contact you team foundation server administrator
  19. 深度linux系统live版,【Deepin linux下载】Deepin Linux官方下载 v20 最新免费版(ios+Live)-开心电玩...
  20. 三维坐标变换(旋转矩阵旋转向量)

热门文章

  1. 如何判断一个字节是否是一个汉字中的一部分
  2. [SCOI2012]滑雪与时间胶囊
  3. Android构建系统级应用静默授权,静默安装
  4. 前后端联调什么意思?
  5. 苹果m1pro和m1max区别
  6. 屁精 apple-polisher
  7. 【1216】 青蛙(一)
  8. 微信小程序foreach遍历_详解微信小程序循环及嵌套循环
  9. oracle plsql 使用
  10. 1076: 聚餐人数统计