c语言静态函数调用问题
楼上只说对一半,这里能调用a和b两个函数确实是因为使用include把a.cpp和b.cpp加入到了main.cpp里面,使用include实际是把对应代码加到include的位置。真正做项目没有这样做的,都是使用头文件的方式;
创新互联公司从2013年成立,是专业互联网技术服务公司,拥有项目成都网站制作、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元峰峰矿做网站,已为上家服务,为峰峰矿各地企业和个人服务,联系电话:18982081108
static修饰的函数和变量在别的文件是绝对不可见的,这是楼上错误的地方,即使使用extern声明函数导出,也不可以,编译时根本就不能通过,会报static类型错误,不能导出。。。
在你原来文件结构上加入头文件:
//a.h
#include iostream
using namespace std;
void a();
//b.h
void b();
然后把main.cpp里面的2个include分别改成a.h和b.h,编译:g++ main.cpp a.cpp b.cpp会发现报错误:
a.cpp: In function ‘void a()’:
a.cpp:3: error: ‘void a()’ was declared ‘extern’ and later ‘static’
a.h:3: error: previous declaration of ‘void a()’
这里就是因为a函数是static类型,不能导出,把static去掉这里就可以编译通过了。。。。
这也是static其中一个用法
c语言调用库函数用什么命令
您好,很高兴回答您的问题。
在c语言中,专门建立有一组需要经常使用、但是编写起来不太简单的函数,系统把这些功能载入到软件内容。普通用户所需要使用时,只需要按照规定输入正确的调用语句,即可打开并运行谢谢文件。打开的格式为#include对应文件名,如打开输入输出函数为#includestdio. h。
C语言中,其他文件可否调用文件中的static函数?
不能,C语言中的static函数,内部函数和外部函数,函数一旦定义后就可被其它函数调用。
当一个源程序由多个源文件组成时,在一个源文件中定义的函数能否被其它源文件中的函数调用,C语言又把函数分为两类。
如果在一个源文件中定义的函数只能被本文件中的函数调用,而不能被同一源程序其它文件中的函数调用,
这种函数称为内部函数。
内部函数也称为静态函数,但此处静态static
的含义已不是指存储方式,而是指对函数的调用范围只局限于本文件。
外部函数在整个源程序中都有效,其定义的一般形式为extern
类型说明符
函数名形参表。
C语言中static函数,只能被本文件中的函数所使用,别的c文件中不能访问这个函数,而且你可以在别的文件中定义与之同名的函数,不会互相干扰。
网页名称:c语言调用静态库函数,C语言静态函数
网站URL:http://scgulin.cn/article/heojod.html