[問題] const 變數在.h, undefined behavior?
https://www.fluentcpp.com/2019/07/23/how-to-define-a-global-constant-in-cpp/
偶然看到這篇,我其實覺得他寫錯
這部分
Each file has its own version of焏. This is a problem for three reasons:
it is undefined behaviour (objects must be defined only once in C++),
??????真的undefined嗎?有沒有什麼表格或網址整理ub...之前看到說把東西寫在
namespace std也是ub...也太多很容易就寫出來的ub了吧
it uses more memory,
if the constructor (or destructor) of曱温as side effects, they will be execute
d twice.
這句看不懂,什麼是side effect在這裡?
他的範例我唯一能看出問題的就是你沒辦法保證cout比他的x先初始化
其他他說執行兩次cstor不是很正常嗎?
我只記得const自帶static,所以預設是internal linkage
https://en.cppreference.com/w/cpp/language/cv
的Note也是這樣寫
但他說是ub 我覺得很奇怪…..
最後他提到inline,
inline跟extern效果一樣,意思是c++鼓勵使用inline而不是extern嗎
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.11.66.55 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1563977987.A.CFC.html
※ 編輯: lovejomi (39.11.66.55 臺灣), 07/24/2019 22:25:24
※ 編輯: lovejomi (39.11.66.55 臺灣), 07/24/2019 22:26:45
→
07/24 22:38,
5年前
, 1F
07/24 22:38, 1F
→
07/24 23:10,
5年前
, 2F
07/24 23:10, 2F
※ 編輯: lovejomi (110.28.106.14 臺灣), 07/25/2019 17:03:38
推
07/25 17:44,
5年前
, 3F
07/25 17:44, 3F
→
07/25 17:45,
5年前
, 4F
07/25 17:45, 4F
→
07/25 17:45,
5年前
, 5F
07/25 17:45, 5F
→
07/25 17:48,
5年前
, 6F
07/25 17:48, 6F
→
07/25 17:49,
5年前
, 7F
07/25 17:49, 7F
→
07/25 17:50,
5年前
, 8F
07/25 17:50, 8F
→
07/25 17:51,
5年前
, 9F
07/25 17:51, 9F
→
07/25 17:51,
5年前
, 10F
07/25 17:51, 10F
→
07/27 09:56,
5年前
, 11F
07/27 09:56, 11F
→
07/27 09:56,
5年前
, 12F
07/27 09:56, 12F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):