发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
留言交流
近段时间,在做一个项目时,发现函数名前都加上static,才想到如果不加static有什么作用呢?它们之间的区别是什么,查找了一个资料,对它们的区别列举如下:
1:加了static后表示该函数失去了全局可见性,只在该函数所在的文件作用域内可见
2:当函数声明为static以后,编译器在该目标编译单元内只含有该函数的入口地址,没有函数名,其它编译单元便不能通过该函数名来调用该函数,这也是对1的解析与说明
来自: AwayFly > 《c》
0条评论
发表
请遵守用户 评论公约
.h和.cpp文件的区别
.h和.cpp文件的区别。就请使用多个编译单元吧.(一个函数不能放到两个编译单元里面,但两个以上。就可以分别放在一个单元,也就是cpp里面)如果一个.cpp要用到另一个.cpp定义的函数怎么办? 只需在这个.cpp...
解析出c++中的内部链接与外部链接_学习笔记
c)类定义总有内部连接,而非inline类成员函数定义总有外部连接,不论这个成员函数是静态、虚拟还是一般成员函数,类静态数据成员定义总有外部连接。//类成员函数声明};} 如果你的Base类是定义在B...
C 学了这么多年,你仍不知道的事!!!
C++学了这么多年你知道为什么定义类时,类的定义放在.h文件中,而类的实现放在cpp文件中。其实是因为由于cpp文件中存储的是成员函数的实现,而成员函数具有外部链接特性,会在目标文件产生符号。因为内...
C/C++定义全局变量/常量几种方法的区别
所以对const我没有什么可以过多的描述,我只是想提醒你,const char* g_str = "123456" 与 const char g_str[] = "123465"是不同的, 前面那个const 修饰的是char * 而不是g_str,...
关于 extern inline | A Geek''''s Page
顺便说一句,gcc 提供了-fgnu89-inline 和 -fno-gnu89-inline 选项可在编译时控制上述 inline 的行为。“static inline” means “we have to have this function, if you use it, but don’t inline i...
C++全局变量的声明和定义(转)
C++全局变量的声明和定义(转)(1)编译单元(模块) 在VC或VS上编写完代码,点击编译按钮准备生成exe文件时,编译器做了两步工作:第一步,将每个.cpp(.c)和相应的.h文件编译成obj文件;即B编译单元...
C++ 全局变量初始化学习笔记
C++ 全局变量初始化学习笔记什么时候初始化根据 C++ 标准,全局变量的初始化要在 main 函数执行前完成,常识无疑,但是这个说法有点含糊,main 函数执行前到底具体是什么时候呢?
C++ 关于声明,定义,类的定义,头文件作用,防止头文件在同一个编译单元重复引用,不具名空间
C++ 关于声明,定义,类的定义,头文件作用,防止头文件在同一个编译单元重复引用,不具名空间。//source.cc.//source1.cc.但是对于不同的编译单元source1.cc,source2.cc他们都是还会引用head.h的,即...
c 面试题及答案
全局变量:全局/静态存储区。12. static全局变量与普通全局变量的区别?static局部变量与普通变量的区别?static函数与普通函数的区别。static函数与普通函数有什么区别:static函数在内存中只有一份,普...
微信扫码,在手机上查看选中内容