当函数声明和定义出现在主函数之后的,我们需要在函数之前(在函数调用以前)加函数原型声明。

函数原型声明,指明 函数名字,返回类型,有几个参数,这几个参数是什么类型。不需要函数体。也不需要形式参数的名字(当然,写了形式参数的名字也不算错)。分号作原型声明 结束符

当函数定义出现在主函数之前,就不需要函数原型声明。

函数定义,必须有函数体。同时有 函数名字,返回类型,有形式参数的类型和名字。

二者主要区别是一个有函数体,描写函数数据加工和返回的过程和细节。另一个只是简单地说一下函数名字,返回类型,有几个参数。

例如:

        函数原型声明:int fun(int a, int b); // 函数名字fun,返回类型 int,有2个 int 参数函数原型声明:int fun(int, int); // 函数名字fun,返回类型 int,有2个 int 参数函数原型声明:fun(int, int); // 函数名字fun,默人返回类型,有2个 int 参数例如函数声明和定义: int fun(int a, int b) {return a+b;}// 花括号里是函数体,结束处没有分号,有形参名。

函数原型类似函数定义时的函数头,又称函数声明。函数声明由函数返回类型、函数名和形参列表组成。这三个元素被称为函数原型,函数原型描述了函数的接口。

函数原型在c++中就是函数声明,因为它定义了函数名、参数个数、参数类型和返回值。定义是函数声明加上对这个函数的实现,即有花括号跟随在后。

这个是声明(原型):

int add(int, int);

这个是定义:

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

函数原型相当于函数调用规则.比如:

函数int fun(int a,int b) { int c; c=a+b; return c }
的原型是int fun(int a,int b);或者可以写成int fun(int,int);

这样可以告诉调用者如何调用这个函数以及返回值是什么.

为了能使函数在定义之前就能被调用,C++规定可以先说明函数原型,然后就可以调用函数。函数定义可放在程序后面。 由于函数原型是一条语句,因此函数原型必须以分号结束。函数原型由函数返回类型、函数名和参数表组成,它与函数定义的返回类型、函数名和参数表必须一致。函数原型必须包含参数的标识符(对函数声明而言是可选的);说明:系统标准函数并没有在包含文件中定义,而只是提供了函数原型。在调用函数时,系统会正确地调用库函数。 注意:函数原型与函数定义必须一致,否则会引起连接错误。

C++中的函数原型和函数定义相关推荐

  1. C++: 函数重载(c++函数原型、函数重载要素)

    1.c++函数原型 c++函数原型有3部分构成:返回值.函数名称.形参 c语言函数原型只与函数名有关 2.函数重载三要素 函数重载是c++中多态中静多态实现方法之一. 多态:静态多态(函数重载.泛型编 ...

  2. c语言scarf函数原型,scanf 函数原型.doc

    scanf 函数原型.doc scanf 函数原型 scanf 函数原型 int scanf( const char *format, ... ); scanf()函数是格式化输入函数,它从标准输入设 ...

  3. 【Kotlin】apply 内联扩展函数 ( apply 函数原型 | apply 函数示例 | Kotlin 调用 Java API )

    文章目录 I . 内联扩展函数 apply II . Kotlin 调用 Java API III . apply 内联扩展函数示例 ( 调用 Java API 处理图像 ) I . 内联扩展函数 a ...

  4. java实现strcpy的函数原型_strcpy函数的实现

    已知strcpy函数的原型是: char *strcpy(char *dst, const char *src); 实现strcpy函数 解释为什么要返回char * 假如考虑dst和src内存重叠的 ...

  5. 函数定义、函数声明、函数原型

    函数定义.函数声明.函数原型:变量声明.变量定义:类型声明.类型定义 1.函数定义.函数声明.函数原型 2.变量声明.变量定义 3.类型声明.类型定义 1.函数定义.函数声明.函数原型 函数声明中不但 ...

  6. 函数声明(函数原型)的一些关键技巧

    当编译器遇到一个函数调用时,它产生代码传递参数并调用这个函数,而且接收该函数返回的值(如果有的话).但编译器是如何知道该函数期望接受的是什么类型和多少数量的参数呢?如何知道函数返回值的类型呢? 如果没 ...

  7. C++类的成员函数(在类外定义成员函数、inline成员函数)

    类的成员函数(简称类函数)是函数的一种,它的用法和作用和前面介绍过的函数基本上是一样的,它也有返回值和函数类型,它与一般函数的区别只是:它是属于一个类的成员,出现在类体中.它可以被指定为private ...

  8. C++类的成员函数(在类外定义成员函数)

    类的成员函数(简称类函数)是函数的一种,它的用法和作用和前面介绍过的函数基本上是一样的,它也有返回值和函数类型,它与一般函数的区别只是:它是属于一个类的成员,出现在类体中.它可以被指定为private ...

  9. C++ 函数的声明和定义

    在程序中使用函数时,你必须先声明它然后再定义,声明的目的是告诉编译器你即将要定义的函数的名字是什么,返回值的类型是什么以及函数是什么.而定义则是告诉编译器这个函数的功能是什么.假如我们不声明,那么该函 ...

  10. C++的成员函数声明与定义 —— 类外定义成员函数以及inline函数

    作者原文:https://www.cnblogs.com/wuchanming/p/4061654.html 类的成员函数(简称类函数)是函数的一种,它的用法和作用和前面介绍过的函数基本上是一样的,它 ...

最新文章

  1. RESTful再理解
  2. superset安装配置
  3. monkey测试===通过monkey测试检查app内存泄漏和cpu占用
  4. java 遍历100以内的偶数,偶数的和,偶数的个数
  5. Mysql数据库的简单介绍
  6. Oracle例外处理
  7. HTTP Status 500 - The absolute uri: http://java.sun.com/jsp/jstl/core cannot-报错解决方法
  8. python创建包含双引号的字符串代码_python 字符串组成MySql 命令时,字符串含有单引号或者双引号导致出错解决办法...
  9. 让你提前认识软件开发(14):程序中的算法
  10. ThreadLocal到底是什么,尚硅谷docker高级
  11. 台达变频器485通讯接线图_台达PLC与变频器用485通讯怎样实现启动、停止和频率给定,程序怎样做。谢谢!...
  12. 有什么软件能一帧一帧的播放视频吗?KMPlayer
  13. 《Head First Java(第2版)中文版》辅导书
  14. 手机上的python编辑器_菜鸟教程在线编辑器|菜鸟教程app手机版下载(html/java/python3)v1.0-乐游网安卓下载...
  15. S@Kura的PHP进阶之路(三)
  16. push大法破解登录框
  17. unity 图文混排方案
  18. mysql群发消息_百万级用户量的站内信群发数据库设计
  19. Java 程序基本结构
  20. 14_扫雷游戏地雷数计算

热门文章

  1. 看《当幸福来敲门》观后感
  2. C语言数组——一维数组实例详解
  3. 'grunt' 不是内部或外部命令,也不是可运行的程序 或批处理文件
  4. Completed shut down of DiscoveryClient
  5. 互联网2018校招时间_供参考
  6. 通过Grafana进行监控报警
  7. 苹果8硬件保修服务器,iPhone手机刷机报错,很多是硬件问题
  8. 【系统架构】-什么是MDA架构、ADL、DSSA
  9. PTA 愿天下有情人都是失散多年的兄妹 (二叉树遍历)
  10. lzg_ad:EWF原理详解