[問題] 外部變數static問題
開發平台(Platform): (Ex: Win10, Linux, ...)
Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
問題(Question):
最近在c primer plus中看到一段有關使用全域變數的一種方法
/* constant.h -- defines some global constants */
static const double PI = 3.14159;
static const char * MONTHS[12] =
{"January", "February", "March", "April", "May", "June", "July",
"August", "September", "October", "November", "December"};
/* file1.c -- use global constants defined elsewhere */
#include "constant.h"
/* file2.c -- use global constants defined elsewhere */
#include "constant.h"
書上說不使用static關鍵字,那麼包含在file1.c和file2.c檔案中的constant.h將會導
致每個使用相同識別符號所定義宣告的檔案,都不被ANSI標準所支援
想知道是那邊違反標準?因為就算沒有使用static編譯執行似乎也沒有錯誤?
在這麻煩各位 感謝
程式碼(Code):(請善用置底文網頁, 記得排版)
http://ideone.com/jLsWKu
補充說明(Supplement):
原文圖片:http://imgur.com/a/npcsk
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.82.152.86
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1501809537.A.F43.html
※ 編輯: Tverous (111.82.152.86), 08/04/2017 09:20:50
→
08/04 09:32, , 1F
08/04 09:32, 1F
推
08/04 09:35, , 2F
08/04 09:35, 2F
→
08/04 09:35, , 3F
08/04 09:35, 3F
→
08/04 10:45, , 4F
08/04 10:45, 4F
→
08/04 10:46, , 5F
08/04 10:46, 5F
推
08/04 11:35, , 6F
08/04 11:35, 6F
→
08/04 11:36, , 7F
08/04 11:36, 7F
→
08/04 11:36, , 8F
08/04 11:36, 8F
→
08/04 11:36, , 9F
08/04 11:36, 9F
→
08/04 11:36, , 10F
08/04 11:36, 10F
→
08/04 11:36, , 11F
08/04 11:36, 11F
→
08/04 11:37, , 12F
08/04 11:37, 12F
→
08/04 11:37, , 13F
08/04 11:37, 13F
→
08/04 11:37, , 14F
08/04 11:37, 14F
→
08/04 11:37, , 15F
08/04 11:37, 15F
→
08/04 12:15, , 16F
08/04 12:15, 16F
→
08/05 01:18, , 17F
08/05 01:18, 17F
→
08/05 01:18, , 18F
08/05 01:18, 18F
→
08/05 01:20, , 19F
08/05 01:20, 19F
→
08/05 01:20, , 20F
08/05 01:20, 20F
→
08/05 01:22, , 21F
08/05 01:22, 21F
→
08/05 01:23, , 22F
08/05 01:23, 22F