作者darkhcv (我只想耍废)
看板C_and_CPP
标题[语法] function前面加static
时间Fri Feb 13 16:02:09 2009
我记得书上是写说
在函示前面加上static表示这个函示只能在这个cpp档里被呼叫
例如
A.cpp
static void FuncA()
{
...
}
则这个FuncA()就只能在A.cpp内被使用,其他cpp档内是不能呼叫FuncA()的
但是我後来想一想
如果一开始就不要在A.h这个header档内宣告函示的定义的话
不是也能达到这个目的吗?
请问是我对这个static的功用有所误解,还是另有其他目的呢?
--
世界上最难发现的
是遗落在沙漠中的一根针?
世界上最难发现的
是黑夜里落下的乌鸦羽毛?
世界上最难发现的
是自己的误解
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.128.139.157
1F:→ HudsonE:叫别人小心一点不要使用这个 func 不也能达到这个目的吗? 02/13 16:09
2F:推 ledia:link 的时候会 multiple definition 02/13 16:12
3F:→ ledia:(如果撞名而两边又都没有宣告 static 的话) 02/13 16:13
4F:→ ledia:有时候是既有的 library 之间的问题, 设计时要想清楚 02/13 16:14
5F:推 firose:如果 .h 不放的话, 仍然不能防范, 只要有人不小心写出 02/13 17:31
6F:→ firose:extern void funA() 一样可以使用 02/13 17:31
7F:→ firose:加 static 表示 internal-linkage 不加表示 external-linka 02/13 17:32