[問題] 多C檔的全域變數定義在那好?

看板C_and_CPP (C/C++)作者時間10年前 (2015/08/27 20:23), 編輯推噓1(1016)
留言17則, 4人參與, 最新討論串1/1
請教一個問題,若有一個變數,我希望每個C檔都可以使用 只能定義在某個C中,其它C檔定義成EXTERN嗎? 有沒有其它寫法呢? 因為我想將某個變數區塊定義,不想要使用函式時都要當引數輸入 所以想寫成全域變數,使用者可以自己改名,寫成H檔 再#INCLUDE進來 但感覺好像怪怪的,請問大家都怎麼寫 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.58.180 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1440678200.A.10E.html

08/27 20:31, , 1F
當引數輸入有甚麼不好?
08/27 20:31, 1F

08/27 20:48, , 2F
因為引數已經夠多了,而且理論上這個函式也只能對此變數操
08/27 20:48, 2F

08/27 20:49, , 3F
做,卻又把它當引數丟進去,怎麼想都覺得怪
08/27 20:49, 3F

08/27 21:35, , 4F
引數過多就是要包一包阿. 我是不覺得哪裡怪
08/27 21:35, 4F

08/27 22:26, , 5F
以前我是把所有的 global extern 放在一、二個 .h,有用
08/27 22:26, 5F

08/27 22:27, , 6F
到的再 include .h , 定義放在 .cpp,所以就有了global.h
08/27 22:27, 6F

08/27 22:27, , 7F
和 global.cpp , 然後等到哪天發現了 .h / .cpp 的變數多
08/27 22:27, 7F

08/27 22:28, , 8F
到爆、想殺人、非常亂的時候,就會想再把這些東西塞回各自
08/27 22:28, 8F

08/27 22:28, , 9F
回歸的地方。只要這份 code 不是你一個人寫的 , 就會遇到
08/27 22:28, 9F

08/27 22:28, , 10F
一樣的問題,然後後面接手的人會愈加愈多,愈改愈亂。
08/27 22:28, 10F

08/27 22:38, , 11F
我就是要寫個函式庫.C給別人...所以不知怎麼完,自己寫自
08/27 22:38, 11F

08/27 22:40, , 12F
已亂命名都行,寫給別人,他要都CALL得到,不知道怎麼寫
08/27 22:40, 12F

08/27 23:10, , 13F
給別人用的話玩法就真的很多種了, 不過讓別人看到 global
08/27 23:10, 13F

08/27 23:10, , 14F
variable 就不太好,隨時都會亂改。
08/27 23:10, 14F

09/02 16:31, , 15F
我建議用個wrapper包起來,回傳這個變數
09/02 16:31, 15F

09/02 16:32, , 16F
你在wrapper裡做該有的保護
09/02 16:32, 16F

09/02 16:33, , 17F
我打錯,不是回傳這個變數,是提供setxxx這種wrapper
09/02 16:33, 17F
文章代碼(AID): #1Ltm4u4E (C_and_CPP)
文章代碼(AID): #1Ltm4u4E (C_and_CPP)