精华内容
下载资源
问答
  • 内部函数和外部函数

    2014-05-03 18:41:08
    内部函数和外部函数

    1 内部函数

    如果一个函数只能被本文件中其它函数所调用,它就成为内部函数,在定义内部函数的时候加上static关键字,有点像java中的private。

    即 static 类型标识符 函数名(形参)例如: static int fun (int a);

    内部函数又称为静态函数,标明该函数不能被其它文件所引用。

    2 外部函数

    在定义函数时 加上关键字extern 则表示这个函数式外部函数,可以被别的文件调用,这个关键字可以省略掉

    展开全文
  • 根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数。 内部函数 如果一个函数只能被本文件中其他函数所调用,它称为内部函数。在定义内部函数时,在函数名和函数类型的前面加static。函数首部的一般...

    函数本质上是全局的,因为一个函数要被另外的函数调用,但是,也可以指定函数只能被本文件调用,而不能被其他文件调用。根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数。

    内部函数

    如果一个函数只能被本文件中其他函数所调用,它称为内部函数。在定义内部函数时,在函数名和函数类型的前面加static。函数首部的一般格式为:
    static 类型标识符 函数名(形参表);

    static int fun(int a, int b);
    内部函数又称静态(static)函数。使用内部函数,可以使函数只局限于所在文件。如果在不同的文件中有同名的内部函数,互不干扰。通常把只能由同一文件使用的函数和外部变量放在一个文件中,在它们前面都冠以static使之局部化,其他文件不能引用。

    外部函数

    在定义函数时,如果在函数首部的最左端冠以关键字extern,则表示此函数是外部函数,可供其他文件调用。如函数首部可以写为:
    extern int fun (int a, int b);
    这样,函数fun就可以为其他文件调用。如果在定义函数时省略extern,则默认为外部函数。本教程前面所用的函数都是外部函数。

    在需要调用此函数的文件中,用extern声明所用的函数是外部函数。

    【例4.15】输入两个整数,要求输出其中的大者,用外部函数实现。

    1. /*******file1.cpp(文件1)*******/
    2. #include <iostream>
    3. using namespace std;
    4. int main( )
    5. {
    6. extern int max(int,int); //声明在本函数中将要调用在其他文件中定义的max函数
    7. int a,b;
    8. cin>>a>>b;
    9. cout<<max(a,b)<<endl;
    10. return 0;
    11. }
    12. /*******file2.cpp(文件2)*******/
    13. int max(int x,int y)
    14. {
    15. int z;
    16. z=x>y?x:y;
    17. return z;
    18. }

    运行情况如下:
    7 -34↙
    7

    在计算机上运行一个含多文件的程序时,需要建立一个项目文件(project file),在该项目文件中包含程序的各个文件。详细情况请查看:VC6.0使用教程。

    通过此例可知:使用extern声明就能够在一个文件中调用其他文件中定义的函数,或者说把该函数的作用域扩展到本文件。extern声明的形式就是在函数原型基础上加关键字extern。由于函数在本质上是外部的,在程序中经常要调用其他文件中的外部函数,为方便编程,C++允许在声明函数时省写extern。例4.15程序main函数中的函数声明可写成:
    int max(int, int);

    这就是我们多次用过的函数原型。由此可以进一步理解函数原型的作用。用函数原型能够把函数的作用域扩展到定义该函数的文件之外(不必使用extern)。只要在使用该函数的每一个文件中包含该函数的函数原型即可。函数原型通知编译系统:该函数在本文件中稍后定义,或在另一文件中定义。

    利用函数原型扩展函数作用域最常见的例子是#include命令的应用。在#include命令所指定的头文件中包含有调用库函数时所需的信息。例如,在程序中需要调用sin函数,但三角函数并不是由用户在本文件中定义的,而是存放在数学函数库中的。按以上的介绍,必须在本文件中写出sin函数的原型,否则无法调用sin函数。sin函数的原型是:
    double sin(double x);
    本来应该由程序设计者在调用库函数时先从手册中查出所用的库函数的原型,并在程序中一一写出来,但这显然是麻烦而困难的。为减少程序设计者的困难,在头文件cmath中包括了所有数学函数的原型和其他有关信息,用户只需用以下#include命令:
    #include <cmath>
    即可。这时,在该文件中就能合法地调用各数学库函数了。

    展开全文
  • 当一个源程序由多个源文件组成时,C语言根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。 1 内部函数 如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序...

    函数本质上是全局的,但可以限定函数能否被别的文件所引用。当一个源程序由多个源文件组成时,C语言根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。

    1 内部函数

    如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,这种函数称为内部函数。

    定义一个内部函数,只需在函数类型前再加一个“static”关键字即可,如下所示:

    static  函数类型  函数名(函数参数表)

        {…             …}

    关键字“static”,译成中文就是静态的,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。

    使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。

     2 外部函数

    外部函数的定义:在定义函数时,如果没有加关键字“static”,或冠以关键字“extern”,表示此函数是外部函数:

    [extern]  函数类型  函数名(函数参数表)

                           {……}

    调用外部函数时,需要对其进行说明:

    [extern]  函数类型  函数名(参数类型表)[,函数名2(参数类型表2)……]

    2  外部函数应用。

    1)文件mainf.c

    main()

    {  extern void input(…),process(…),output(…);      

        input(…);  process(…);  output(…);

    } 

    2)文件subf1.c

    extern void input(……)              

          {……}

    3)文件subf2.c

    extern void process(……)                  

           {……}

    4)文件subf3.c……

    extern void output(……)                    

          {……}

    3  数组排序----简单选择排序

    file1.c

    main()

    {

    extern void sort(int  array[ ],int  n);

      int a[10],i;

         for(i=0;i<10;i++)

           scanf("%d",&a[i]);

        sort(a,10);

        for(i=0;i<10;i++)

             printf("%d ",a[i]);

        printf("\n");

    }

    file2.c

    void sort(int  array[],int  n)

    {    int i,j,k,t;

         for(i=0;i<n-1;i++)

         {     k=i;

            for(j=i+1;j<n;j++)

               if(array[j]<array[k])   k=j;

            if(k!=i)

            {    t=array[i];

                 array[i]=array[k];

                 array[k]=t;

            }

         }

    }

    多个源程序文件的编译和连接

    1)一般过程

    编辑各源文件  创建Project(项目)文件  设置项目名称  编译、连接,运行,查看结果。

    2)创建Project(项目)文件

    用编辑源文件相同的方法,创建一个扩展名为.PRJ的项目文件:该文件中仅包括将被编译、连接的各源文件名,一行一个,其扩展名.C可以缺省;文件名的顺序,仅影响编译的顺序,与运行无关。

    注意:如果有某个(些)源文件不在当前目录下,则应在文件名前冠以路径。

    3)设置项目名称

    打开菜单,选取ProjectProject name,输入项目文件名即可。

    4)编译、连接,运行,查看结果

    与单个源文件相同。编译产生的目标文件,以及连接产生的可执行文件,它们的主文件名,均与项目文件的主文件名相同。

    注意:当前项目文件调试完毕后,应选取ProjectClear project,将其项目名称从“Project name”中清除(清除后为空)。否则,编译、连接和运行的,始终是该项目文件!

    5)关于错误跟踪

    缺省时,仅跟踪当前一个源程序文件。如果希望自动跟踪项目中的所有源文件,则应将OptionsEnvironmentMessage Tracking开关置为“All files ”:连续按回车键,直至“All files”出现为止。此时,滚动消息窗口中的错误信息时,系统会自动加载相应的源文件到编辑窗口中。

    也可关闭跟踪(“Message Tracking”置为“Off”)。此时,只要定位于感兴趣的错误信息上,然后回车,系统也会自动将相应源文件加载到编辑窗口中。

    展开全文
  • C语言程序设计教案 章节名称 变量的类型2内部函数和外部函数章节复习 授课类型 理论 实验 ?理实一体 实训 实习 班级 地点 周次 星期 节次 授课进度 ?符合 超前 滞后 ?符合 超前 滞后 ?符合 超前 滞后 教学目标 知识...
  • 根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数。 内部函数 如果一个函数只能被本文件中其他函数所调用,它称为内部函数。在定义内部函数时,在函数名和函数类型的前面加static。函数首部的一般...
    函数本质上是全局的,因为一个函数要被另外的函数调用,但是,也可以指定函数只能被本文件调用,而不能被其他文件调用。根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数。

    内部函数

    如果一个函数只能被本文件中其他函数所调用,它称为内部函数。在定义内部函数时,在函数名和函数类型的前面加static。函数首部的一般格式为:
        static 类型标识符 函数名(形参表);

        static int fun(int a, int b);
    内部函数又称静态(static)函数。使用内部函数,可以使函数只局限于所在文件。如果在不同的文件中有同名的内部函数,互不干扰。通常把只能由同一文件使用的函数和外部变量放在一个文件中,在它们前面都冠以static使之局部化,其他文件不能引用。

    外部函数

    在定义函数时,如果在函数首部的最左端冠以关键字extern,则表示此函数是外部函数,可供其他文件调用。如函数首部可以写为:
        extern int fun (int a, int b);
    这样,函数fun就可以为其他文件调用。如果在定义函数时省略extern,则默认为外部函数。本教程前面所用的函数都是外部函数。

    在需要调用此函数的文件中,用extern声明所用的函数是外部函数。

    【例4.15】输入两个整数,要求输出其中的大者,用外部函数实现。
    /*******file1.cpp(文件1)*******/
    #include <iostream>
    using namespace std;
    int main( )
    {
       extern int max(int,int);  //声明在本函数中将要调用在其他文件中定义的max函数
       int a,b;
       cin>>a>>b;
       cout<<max(a,b)<<endl;
       return 0;
    }
    /*******file2.cpp(文件2)*******/
    int max(int x,int y)
    {
       int z;
       z=x>y?x:y;
       return z;
    }

    运行情况如下:
    7 -34↙
    7

    通过此例可知:使用extern声明就能够在一个文件中调用其他文件中定义的函数,或者说把该函数的作用域扩展到本文件。extern声明的形式就是在函数原型基础上加关键字extern。由于函数在本质上是外部的,在程序中经常要调用其他文件中的外部函数,为方便编程,C++允许在声明函数时省写extern。例4.15程序main函数中的函数声明可写成:
        int max(int, int);

    这就是我们多次用过的函数原型。由此可以进一步理解函数原型的作用。用函数原型能够把函数的作用域扩展到定义该函数的文件之外(不必使用extern)。只要在使用该函数的每一个文件中包含该函数的函数原型即可。函数原型通知编译系统:该函数在本文件中稍后定义,或在另一文件中定义。

    利用函数原型扩展函数作用域最常见的例子是#include命令的应用。在#include命令所指定的头文件中包含有调用库函数时所需的信息。例如,在程序中需要调用sin函数,但三角函数并不是由用户在本文件中定义的,而是存放在数学函数库中的。按以上的介绍,必须在本文件中写出sin函数的原型,否则无法调用sin函数。sin函数的原型是:
        double sin(double x);
    本来应该由程序设计者在调用库函数时先从手册中查出所用的库函数的原型,并在程序中一一写出来,但这显然是麻烦而困难的。为减少程序设计者的困难,在头文件cmath中包括了所有数学函数的原型和其他有关信息,用户只需用以下#include命令:
        #include <cmath>
    即可。这时,在该文件中就能合法地调用各数学库函数了。
    展开全文
  • * 14_内部函数和外部函数.c * * Created on: 2015年7月5日 * Author: zhong */ #include <stdio.h> #include <stdlib.h> /** * 所谓的外内部函数:是依据函数是否能被其他源谁的调用来区分的。 ...
  • 内部函数和外部函数内部函数: 需加static声明,又称静态函数,只能在该文件中调用,在其他文件中不能被调用外部函数:1. 在定义函数时,若在函数首部的最左端加关键字extern,则表示此函数是外部函数,可被其他...
  • 有的函数可以被本文件中的其他函数调用,也可以被其他文件 中的函数调用,而有的函数只能被本文件中的其他函数调用,不能被其他文件中的函数调用。         函数本质 是...
  • C语言的内部函数和外部函数用法

    千次阅读 2010-04-09 16:53:00
    内部函数和外部函数内部函数: 需加static声明,又称静态函数,只能在该文件中调用,在其他文件中不能被调用外部函数:1. 在定义函数时,若在函数首部的最左端加关键字extern,则表示此函数是外部函数,可被其他...
  • 内部函数和外部函数 【3】变量的声明与定义  对于函数。声明部分是对有关标识符(变量、函数、结构体)的属性进行声明;函数的声明是函数的原型,而函数的定义是对函数功能的定义。对被调函数的声明...
  • 01关于变量的声明定义1、一个函数一般由两部分组成:声明部分执行语句。2、对变量而言,声明与定义的关系稍微复杂一些。在声明部分出现的变量有两种情况:一种是需要建立存储空间的,另一种是不需要建立存储空间...
  • 函数本质上是全局的,因为一个函数要被另外的函数调用,也可以指定函数不能被其他文件调用。根据能否被其他源文件调用,将函数区分为内部和外部函数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,657
精华内容 3,062
关键字:

内部函数和外部函数