【足迹C++ primer】10.函数基础

函数基础

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的时候反而不行了,我也不知道为什么。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值