72、内部函数与外部函数

 

建工作空间72  工程-》新建--》工程放到工作区下再添加文件1.cpp 2.cpp 3.cpp

1.cpp

//①在不同的文件中不可以有重名的外部函数②系统如何处理函数的声明(就近原则):先从本文件中寻找函数的定义,找不到,再从其他文件中寻找外部函数
#include <stdio.h>
extern void f(void);//extern 可省
void g(void);
extern void (*P)(void);
int main(void)
{
//g(); //error如果想正常运行该语句,g函数要么定义在本文件中,要么是定义在其他文件中的外部函数。我们不能企图调用一个来自其他文件中定义的内部函数g
f();
(*P)();//可以通过函数的指针间接调用来自其他文件中定义的内部函数
return 0;
}
static void f(void)
{
printf("1111\n");
}

2.cpp

#include <stdio.h>//因为在f函数要用到printf函数所以这里需要把stdio.h这个头文件包含进来,就相当于在该句加了printf的函数声明。在程序连接的时候会从库里找printf的函数定义
static void g(void)//在定义函数的时候在函数的首部加上static代表这个函数是内部函数,其特点是其他文件不可以通过它的函数名来调用它
{
printf("函数运行\n");
}
void (*P)(void) = g;
extern void f(void)//在定义函数的时候在函数的首部加上extern代表这个函数是外部函数,extern其实可以省略不写。外部函数可以被其他文件通过它的函数名来使用它
{
printf("haha\n");
}

3.cpp

#include <stdio.h>

/*void f(void) 因为2.cpp中已经有了一个重名的外部函数f
{
printf("lala");

}*/

上一篇:jq动态添加的节点绑定事件


下一篇:如何设置pd17虚拟机启动器