其他分享
首页 > 其他分享> > 6-1 函数基础

6-1 函数基础

作者:互联网

image-20220220081825767

目录

6.1.1 局部变量

变量分类

变量类型 作用域 生命期 初始化
全局对象 整个程序 整个程序 默认初始化
自动对象 块作用域 声明时自动创建,出作用域后自动销毁 默认初始化
局部静态对象 块作用域 整个程序 值初始化

image-20220121085506553

//举例: 用局部静态变量统计某函数的调用次数
#include<iostream>
using namespace std;
int cout_calls(){
    static int num = 0;
    return ++num;
}
int main(){
    for(int i = 0; i < 10; ++i)
        cout << cout_calls() << endl;
    return 0;
}//输出:0、1、2、......、10

6.1.2 函数的声明

6.1.3 分离式编译

概念

分离式概念随着程序越来越复杂,我们希望把程序的各个部分分别存储在不同文件中。为了允许编写程序时按照逻辑关系将其划分开来,C++语言支持所谓的分离式编译(separate compilation)。分离式编译允许我们把程序分割到几个文件中去,每个文件独立编译。

编译和链接多个文件

举个例子,假设fact函数的定义位于一个名为 fact.cpp 的文件中,它的声明位于名为 fact.h 的头文件中。显然与其他所有用到fact函数的文件一样,fact.cpp应该包含fact.h头文件。另外,我们在名为 factMain.cpp的文件中创建main函数,main函数将调用fact函数。要生成可执行文件(executable file),必须告诉编译器我们用到的代码在哪里。

image-20220121100715306

fact.h

#ifndef FACT_H
#define FACT_H

int fact(int val);

#endif

fact.cpp

#include"fact.h"
int fact(int val){
  int res = 1;
  while(val > 1)
      res *= val--;
  return res;
}

factMain.cpp

#include<iostream>
#include"fact.h"
using namespace std;

int main(){
  int val = 5;
  cout<<fact(val)<<endl;
  return 0;
}

标签:exe,函数,int,基础,++,cpp,fact
来源: https://www.cnblogs.com/timothy020/p/15914808.html