[問題] static 用於標頭檔

看板C_and_CPP作者 (阿普)時間13年前 (2012/10/03 14:47), 編輯推噓1(107)
留言8則, 6人參與, 最新討論串1/1
gcc 程式: a.h內 static char string_http_Content_Type[] = "Content-Type\0"; 想要的功能: 所有include "a.h"的c檔都可以存取到這個字串 因為有看到同事這種寫法,不太董為何是這樣寫,所以上來請教各位大大 我若把static拿掉,complier不會過,想說應該是用#define寫,但也不行。 若想達到任何地方都可以存取到這個字串的話,我可以如何寫呢??謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.192.129

10/03 22:49, , 1F
extern
10/03 22:49, 1F

10/03 23:08, , 2F
#1G9S3TUF 參考這篇,我之前問的應該跟你同個問題
10/03 23:08, 2F

10/04 00:19, , 3F
因為a.h被多個檔案include, static拿掉就變重複宣告了
10/04 00:19, 3F

10/04 00:20, , 4F
換#define一樣道理~解決辦法就是確保a.h內容只被用一次
10/04 00:20, 4F

10/04 04:56, , 5F
把定義集中在 .c,在 .h 放純宣告加 extern。
10/04 04:56, 5F

10/04 04:56, , 6F
這樣你改字串內容也不用重編譯到哭死。
10/04 04:56, 6F

10/04 09:30, , 7F
推樓上,寫在 header 每 include 一次就多一個重複資料
10/04 09:30, 7F

10/04 10:40, , 8F
謝謝各位大大的解釋
10/04 10:40, 8F
文章代碼(AID): #1GR505fH (C_and_CPP)