在链接Storage Class Specifier
ä¸ä¸»é¢˜é™æ€å±€éƒ¨å˜é‡ 我读了那个
 Â在å—作用域ä¸ä½¿ç”¨æŒ‡å®šç¬¦static声明的å˜é‡å…·æœ‰é™æ€å˜å‚¨æŒç»æ—¶é—´ï¼Œä½†åœ¨æŽ§ä»¶ç¬¬ä¸€æ¬¡é€šè¿‡å…¶å£°æ˜Žæ—¶åˆå§‹åŒ–(除éžå®ƒä»¬çš„åˆå§‹åŒ–为零或åˆå§‹åŒ–åˆå§‹åŒ–,这å¯ä»¥åœ¨é¦–次输入å—之å‰æ‰§è¡Œï¼‰
我ä¸æ˜Žç™½å®ƒçš„实际å«ä¹‰æ˜¯ä»€ä¹ˆï¼š
 Âå¯ä»¥åœ¨é¦–次输入之å‰æ‰§è¡Œ
å¦å¤–,é™æ€æœ¬åœ°å˜é‡æ˜¯å¦å¯ä»¥è¯´æ˜¯æ— 链接?
如果有必è¦ï¼Œè¯·ä½ 举一些例åå—?感谢
ç”案 0 :(得分:4)
相关部分是åˆå§‹å€¼å·²çŸ¥çš„时间 如果已知有é¢å¤–çš„ä¿è¯ï¼Œå®ƒå°†åœ¨å—首次执行之å‰ä¸ä¼šæ›´æ”¹ã€‚
下é¢æ˜¯ä»£ç 和一些例å。
int foo(void);
void bar(void)
{
static int ZeroInit; // zero init
static int a = 0; // constant init
static int b = 4; // constant init
// values for above inits are known at start of runtime and even earlier
static int c = foo();
// dynamic init, value unknown before execution of foo(),
// which cannot (i.e. is defined not to) be done before executing the block
/* code */
}