如果一个函数是static类型, 那么别的.cpp 文件就无法用它了是吗??

cd7809 2002-11-27 05:40:33

比如: test.h中:

static bool test(char* szTemp);

那么, 在另一个cpp文件other.cpp中就算包含test.h,也用不了test(...)是吗?

谢谢!!!
...全文
151 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
eric_uugames 2002-11-29
  • 打赏
  • 举报
回复
static 的问题,
考虑静态变量,static是为了实现 值全局性 和 访问的局部性 而已。
编译器实现时考虑到实际使用情况和技术难度就固定了这种值全局性和访问的局部性。所以一个static的函数也具有值全局性、访问局部性,故而不能被访问
兄弟们讨论了下这么觉得,只是希望能有所启示,不求分
fjwjq 2002-11-28
  • 打赏
  • 举报
回复
封装性
tuxw 2002-11-28
  • 打赏
  • 举报
回复
语法如此!游戏的规则嘛!
nullw 2002-11-28
  • 打赏
  • 举报
回复
这是C/C++语言的规定
chenbinghui 2002-11-28
  • 打赏
  • 举报
回复
奇怪!
有没有谁可以说出真正的原因?
我估计不是信息隐蔽的问题!
golinjin 2002-11-28
  • 打赏
  • 举报
回复
这是C/C++语言的规定,就象为什么要到24岁才能结婚呢?法律的规定嘛!同样只要记住在C语言中,如果一个函数或变量声明为static,那么在其它模块中是无法引用的。
cd7809 2002-11-27
  • 打赏
  • 举报
回复

我试过了, 不能用, 可是为啥呢??
leasun 2002-11-27
  • 打赏
  • 举报
回复
在C语言中,如果一个函数或变量声明为static,那么在其它模块中是无法引用的。这是在C中不多的信息隐蔽的方法
Bandry 2002-11-27
  • 打赏
  • 举报
回复
不知道对不对,说错了别打我,还要给我分哦
Bandry 2002-11-27
  • 打赏
  • 举报
回复
不是这样的吧,应该可以用的。只是你不能再使用extern来声明它为外部函数。比如说你在other.cpp中包含了test.h,但你还有一个cpp文件testit.cpp想用test函数,而你想用extern bool test(char *szTemp)来声明,则会出错,但你在testit.cpp中再次包含test.h,那么它还是可以用的,不过编译器也许会报错的,因为你包含了两次test.h。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧