内部函数和外部函数 函数一般来说是全局的,因为一个函 数要被另外的函数调用,但也可以指定 函数不被其他文件调用,根据一个函数 能否被其它的源文件调用,可以将函数 分为内部函数和外部函数 1内部函数 该函数只能被文件中的其它函数所调用, 称为内部函数,内部函数也称为静态函 数
内部函数和外部函数 • 函数一般来说是全局的,因为一个函 数要被另外的函数调用,但也可以指定 函数不被其他文件调用,根据一个函数 能否被其它的源文件调用,可以将函数 分为内部函数和外部函数 1.内部函数 该函数只能被文件中的其它函数所调用, 称为内部函数,内部函数也称为静态函 数
内部函数和外部函数 内部函数的定义 static类型标识符函数名(形参表) 使用内部函数,则在其它的文件中如 果有同名的函数,则同名的函数互相不 干扰,这样就允许多人编写不同的函数, 而不必担心函数重名
内部函数和外部函数 内部函数的定义 static 类型标识符 函数名(形参表) 使用内部函数,则在其它的文件中如 果有同名的函数,则同名的函数互相不 干扰,这样就允许多人编写不同的函数, 而不必担心函数重名
内部函数和外部函数 2外部函数 定义的格式: extern类型标识符函数名(形参表 例子: extern int fun(int a, int b) 注意:如果在定义函数的时候省略了关 键字 extern,系统会默认是外部函数
内部函数和外部函数 2.外部函数 定义的格式: extern 类型标识符 函数名(形参表) 例子: extern int fun(int a,int b) 注意:如果在定义函数的时候省略了关 键字extern,系统会默认是外部函数
内部函数和外部函数 例子: filel #include void input( char str[20D) printf( please input a string: n gets(str);
内部函数和外部函数 例子: file1.c #include void input(char str[20]) { printf(“please input a string:\n”); gets(str); }
内部函数和外部函数 file2. c #include static void display(char str[20D) printf( %os", str);
内部函数和外部函数 file2.c #include static void display(char str[20]) { printf(“%s”,str); }
内部函数和外部函数 file3.c #include e static void display(char str[20] printf("%osn”,str) main( i extern input(char str[20D) char str1[20] input(strl) display( strl)
内部函数和外部函数 file3.c #include static void display (char str[20]) { printf(“%s\n”,str); } main() { extern input(char str[20]); char str1[20]; input(str1); display(str1);}
内部函数和外部函数 上述程序说明 1.以上程序总共有三个源程序组成, 其中,flel中定义了一个外部函数, fle2中定义了一个内部函数,fle3中定 义了一个内部函数,并且调用了flel中 定义的外部函数 2fil2和fe3文件的函数定义是相同 的,即它们的函数名是相同的,但由于 它们都是内部函数,所以互不影响
内部函数和外部函数 • 上述程序说明 1.以上程序总共有三个源程序组成, 其中,file1中定义了一个外部函数, file2中定义了一个内部函数,file3中定 义了一个内部函数,并且调用了file1中 定义的外部函数 2.file2和file3文件的函数定义是相同 的,即它们的函数名是相同的,但由于 它们都是内部函数,所以互不影响
内部函数和外部函数 如何运行一个多文件的程序 通常的做法: 用# include命令 将fel,file2包含到fle3中去,这样在 编译的时候,系统将这三个文件当做 个整体进行编译,就像是同一个程序 样
内部函数和外部函数 • 如何运行一个多文件的程序 通常的做法: 用# include 命令 将file1,file2包含到file3中去,这样在 编译的时候,系统将这三个文件当做一 个整体进行编译,就像是同一个程序一 样