函数基础
1、局部变量
C++语言中,名字有作用域,对象有生命周期。
名字的作用域是程序文本的一部分,名字在其中可见。
对象生命周期是程序执行过程中该对象存在的一段时间。
size_t count_calls()
{
<span style="white-space:pre"> </span>static size_t ctr=0; //调用结束后这个值仍有效
<span style="white-space:pre"> </span>return ++ctr;
}
int main()
{
<span style="white-space:pre"> </span>for(size_t i=0 ; i != 10 ; ++i)
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>cout<<count_calls()<<endl;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>return 0;
}
2、函数声明
和其他名字一样,函数的名字也必须在使用之前声明。类似于变量,函数只能定义一次,但可以声明多次。
在头文件中进行函数声明
在头文件中声明,而在源文件中声明。
3、分离式编译
编译和链接多个源文件
/*
** 功能:函数声明的头文件
** 时间:2014年5月21日08:19:41
** 作者:cutter_point
*/
#ifndef CHAPTER6_H_INCLUDED
#define CHAPTER6_H_INCLUDED
#include<iostream>
using namespace std;
int fact(int val);
#endif // CHAPTER6_H_INCLUDED
/*
** 功能:函数的定义
** 时间:2014年5月21日08:28:59
** 作者:cutter_point
*/
#include<iostream>
#include"Chapter6.h"
using namespace std;
int fact(int val)
{
int ret=1; //局部变量
while(val>1) //求阶乘
ret *= val--;
return ret;
}
/*
** 功能:主函数实现
** 时间:2014年5月21日08:31:10
** 作者:cutter_point
*/
//$ g++ factMain.cpp fact.cpp # .exe or a.out
#include<iostream>
#include"Chapter6.h"
using namespace std;
int main()
{
int fact(int val);
int i=10;
cout<<"The count is : "<<fact(i)<<endl;
return 0;
}
说实话,我只是照这敲了一下,不知道能不能行啊,以前在VC6.0的时候可以但是我用code::block的时候反而不行了,我也不知道为什么。