C++ 函数的声明与定义

Tags: c++
1、函数的声明
    在C和C 的程序里,完成一项工作的一种典型的方式就是调用一个函数去做那件事。定义函数是程序员刻画怎样完成某个操作的一种方式。一个函数只有先声明后才能够调用。

    在一个函数的生命中,需要给出函数的名字,这个函数返回值的类型,以及在调用这个函数的时候必须提供的参数的个数和参数类型。看如下声明:
    void fun(x,y) ;//这种声明是毫无意义的,因为参数类型未知。

2、函数的定义
    在程序中调用某个函数,首先必须在某个地方定义(仅仅定义一次)。一个函数的定义也就是给出了函数体的函数声明。例如:
    extern  void swap(int * ,int *);  //声明
    void swap(int *p, int *q)
    {
            int t = *p;
            *p = *q;
            *q = t;
    }
函数的定义和对它的所有声明都必须描述了同样的类型,由于参数名不作为类型的一部分,因此参数名字不必保持一致。

3、静态变量
局部变量会在线程达到其定义的时候进行初始化。按照默认方式,这样的事情发生在每次函数被调用的时候,且函数的每一个调用都有自己的一份局部变量的副本。但是,当局部变量被声明为static时,它将只有唯一的一个静态对象,对它的初始化只发生在线程第一次执行到它的定义时进行。

看下面的程序:
#include<iostream>
using namespace std;
void showstatic(int a)
{
    while(a--)
    {
        static int n = 0;  //初始化一次
        int x = 0;               //在每个showstatic()调用时初始化a次
        cout<< "n == "<<n <<",x == "<<x <<endl;
    }
}

int main()
{
    showstatic(3);
}

此程序的输出为:
n == 0,x == 0
n == 1,x == 0
n == 2,x == 0

从上面的输出可以看出,static int n 只有在函数第一次调用时被初始化为0,而局部变量x在函数每次执行到int x时都被初始化为0。

本文链接:http://www.4byte.cn/learning/67106.html