[問題] 一般變數與const變數 在表頭檔問題

看板C_and_CPP作者 (沒有暱稱)時間3年前 (2020/08/02 18:39), 編輯推噓2(207)
留言9則, 7人參與, 3年前最新討論串1/1
C++ / C Windows10 Keil5 1. 個人認知header file 如果被一個source code includes,就是在那個 檔案進行Inline吧? 那如果在header file定義一個變數,不就只代表每個include 其header file的 檔案都有一個變數:同樣名稱同樣數值不同記憶體位址的一個個體嗎? 為什麼在linking的時候會出現重複定義的錯誤呢? 重複定義不是要在同一個檔案的scope出現兩次才算重複定義? 2. const變數被定義在header file裡面的話,可以不消耗任何記憶體空間? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.222.105 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1596364770.A.D98.html

08/02 19:00, 3年前 , 1F
1.的狀況是不是用ifndef 若沒用extern一樣會遇到啊?
08/02 19:00, 1F

08/02 19:56, 3年前 , 2F
欸?keilC允許在.h宣告變數嗎?是我太久沒用還是記錯
08/02 19:56, 2F

08/02 21:01, 3年前 , 3F
08/02 21:01, 3F

08/02 21:01, 3年前 , 4F
應該剛好適合你
08/02 21:01, 4F

08/02 21:08, 3年前 , 5F
現在都有人整理好這種東西,真方便啊...
08/02 21:08, 5F

08/02 22:07, 3年前 , 6F
感謝 看看先!!
08/02 22:07, 6F

08/03 00:08, 3年前 , 7F
1. static 2. C的const是read-only 不是概念上的常數
08/03 00:08, 7F

08/03 03:14, 3年前 , 8F
header 可以用inline constexpr
08/03 03:14, 8F

08/03 10:14, 3年前 , 9F
const不管放哪都一樣 都是在.rodata segment
08/03 10:14, 9F
文章代碼(AID): #1V9fVYsO (C_and_CPP)