ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

72、内部函数与外部函数

2022-02-05 16:02:25  阅读:133  来源: 互联网

标签:文件 函数 外部 void extern 72 printf cpp


 

建工作空间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");

}*/

标签:文件,函数,外部,void,extern,72,printf,cpp
来源: https://www.cnblogs.com/cbxg135/p/15864299.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有