函数三要素:声明,定义,返回值。
1. 按照先申明后使用的方法,在调用它的函数之前加一句申明。
#include<iostream>
using namespace std;
int FUN1(int x);
//函数的声明:可以删除x; 可写成void swap(int );
//声明一个变量是给编译器看的,为了建栈用,顾不上名字是什么,但一定得有类型。
//函数的声明写在调用该函数的main()之前
void main()
{
int a = 5;
int m= FUN1(a);//调用函数
cout << "a=" <<m;
while (1);
}
int FUN1(int x) //函数的定义,定义与申明的区别在于:定义不能省掉参数x,因为定义需要把实参传进来,需要用到形参。
//函数定义后有一个大括号,里面写该函数的方法,函数的声明则只是加一个分号。
{
x += 10;
return x;
}
2. 也可以将函数放在调用它的函数之前即可,即边定义边声明。
#include<iostream>
using namespace std;
int FUN1(int x) //函数的定义,定义与申明的区别在于:定义不能省掉参数x,因为定义需要把实参传进来,需要用到形参。
//函数定义后有一个大括号,里面写该函数的方法,函数的声明则只是加一个分号。
{
x += 10;
return x;
}
void main()
{
int a = 5;
int m= FUN1(a);//调用函数
cout << "a=" <<m;
while (1);
}
倘若FUN1函数放在main()之后,运行会报错:“FUN1”找不到标识符。
3. 函数定义时,形参列表可以为空,但是不能省略;每一个形参都必须含有一个声明符的声明,都得有类型。
void fun1() {/*...*/};//隐式定义空形参列表
void fun2(void) {/*...*/ };//为了与C语言兼容,用void显示的定义空形参列表
int fun3(int x,int y) {/*...*/ }; //正确
int fun4(int x, y) {/*...*/ };//错误,哪怕y的类型也为int也需要在y前写上“int”