青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
金慶的專欄
C++博客
::
首頁
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
::
423 隨筆 :: 0 文章 :: 454 評(píng)論 :: 0 Trackbacks
公告
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
(502)
1. C/C++(166)
(rss)
2. 網(wǎng)游開發(fā)(108)
(rss)
3. Golang(20)
(rss)
4. Linux/Unix(30)
(rss)
5. 軟工與管理(44)
(rss)
6. Python(23)
(rss)
7. Erlang(18)
(rss)
8. Rust(16)
(rss)
9. 其它(77)
(rss)
隨筆檔案
(423)
2023年1月 (1)
2022年11月 (1)
2022年10月 (2)
2022年9月 (1)
2022年4月 (6)
2022年1月 (2)
2021年12月 (4)
2021年11月 (6)
2021年10月 (2)
2021年9月 (2)
2021年8月 (7)
2021年7月 (2)
2021年5月 (2)
2021年3月 (1)
2021年2月 (2)
2021年1月 (1)
2020年12月 (1)
2020年10月 (1)
2020年9月 (5)
2020年8月 (1)
2020年7月 (1)
2020年6月 (1)
2020年4月 (2)
2020年3月 (3)
2020年2月 (3)
2020年1月 (1)
2019年12月 (1)
2019年9月 (2)
2019年4月 (2)
2019年1月 (1)
2018年12月 (1)
2018年11月 (3)
2018年10月 (1)
2018年9月 (3)
2018年8月 (3)
2018年7月 (2)
2018年6月 (4)
2018年5月 (4)
2018年4月 (4)
2018年3月 (1)
2018年1月 (2)
2017年12月 (2)
2017年11月 (3)
2017年10月 (3)
2017年8月 (7)
2017年7月 (1)
2017年6月 (1)
2017年5月 (3)
2017年4月 (3)
2017年3月 (3)
2017年2月 (2)
2017年1月 (2)
2016年12月 (5)
2016年11月 (2)
2016年10月 (2)
2016年9月 (1)
2016年8月 (6)
2016年7月 (3)
2016年6月 (2)
2016年5月 (4)
2016年4月 (2)
2016年3月 (2)
2016年1月 (3)
2015年12月 (2)
2015年11月 (2)
2015年10月 (1)
2015年8月 (2)
2015年7月 (1)
2015年6月 (1)
2015年5月 (4)
2015年4月 (3)
2015年3月 (4)
2015年2月 (5)
2015年1月 (4)
2014年12月 (3)
2014年11月 (3)
2014年10月 (2)
2014年9月 (3)
2014年8月 (1)
2014年4月 (4)
2014年3月 (1)
2014年2月 (4)
2014年1月 (5)
2013年12月 (5)
2013年11月 (5)
2013年9月 (2)
2013年8月 (2)
2013年7月 (2)
2013年6月 (2)
2013年5月 (1)
2013年1月 (2)
2012年12月 (1)
2012年11月 (1)
2012年9月 (1)
2012年8月 (3)
2012年7月 (2)
2012年6月 (1)
2012年4月 (3)
2012年3月 (2)
2012年2月 (3)
2012年1月 (2)
2011年11月 (2)
2011年10月 (3)
2011年9月 (2)
2011年8月 (2)
2011年7月 (3)
2011年6月 (2)
2011年5月 (3)
2011年1月 (2)
2010年12月 (1)
2010年11月 (2)
2010年10月 (2)
2010年9月 (3)
2010年8月 (2)
2010年7月 (3)
2010年6月 (1)
2010年5月 (3)
2010年4月 (3)
2010年3月 (5)
2010年2月 (4)
2010年1月 (4)
2009年12月 (2)
2009年11月 (3)
2009年10月 (4)
2009年9月 (3)
2009年8月 (2)
2009年7月 (4)
2009年6月 (1)
2009年5月 (3)
2009年4月 (4)
2009年3月 (2)
2009年2月 (5)
2009年1月 (1)
2008年12月 (7)
2008年11月 (4)
2008年10月 (1)
2008年9月 (3)
2008年8月 (4)
2008年7月 (3)
2008年6月 (4)
2008年5月 (6)
2008年4月 (7)
2008年3月 (6)
2008年1月 (5)
2007年12月 (7)
2007年11月 (4)
2007年10月 (5)
2007年9月 (6)
2007年8月 (8)
2007年7月 (5)
相冊(cè)
公告照片
搜索
積分與排名
積分 - 660421
排名 - 25
最新評(píng)論
1.?re: boost::asio::spawn 將一統(tǒng)C++網(wǎng)絡(luò)庫(kù)
asio 成為C++首選網(wǎng)絡(luò)庫(kù)
--linda
2.?re: log4cxx中文輸出錯(cuò)誤補(bǔ)丁
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--金慶
3.?re: mingw編譯OrzNet
能發(fā)送一個(gè)mingw編譯好的OrzNet庫(kù)給我嗎? liuweiqcxy@163.com
謝謝!
--劉威
4.?re: log4cxx中文輸出錯(cuò)誤補(bǔ)丁
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--bigbad
5.?re: log4cxx中文輸出錯(cuò)誤補(bǔ)丁
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--bigbad
閱讀排行榜
1.?"multiple definition of" 錯(cuò)誤(11062)
2.?SVN中邪惡的replace(10988)
3.?VS2005編譯libevent(10436)
4.?混音算法的學(xué)習(xí)與研究(10242)
5.?C調(diào)用lua腳本的效率測(cè)試(9020)
評(píng)論排行榜
1.?VC6正在被拋棄(35)
2.?VS2005編譯libevent(21)
3.?"multiple definition of" 錯(cuò)誤(18)
4.?C++引用優(yōu)于指針(17)
5.?ACE與ASIO之間關(guān)于Socket編程的比較(16)
"multiple definition of" 錯(cuò)誤
"multiple definition of" 錯(cuò)誤
在global.h定義了一個(gè)常量字符串,在多個(gè)cpp中包含該global.h.
// file: global.h
#ifndef GLOBAL_H
#define GLOBAL_H
const char * STR_TEST = "Hello world!";
#endif
結(jié)果鏈接時(shí)出現(xiàn)錯(cuò)誤:
multiple definition of ‘STR_TEST’
雖然改為#define肯定行,但是盡量應(yīng)該用const量取代宏定義。
這里有個(gè)概念性錯(cuò)誤。
const 變量默認(rèn)是 static 的,
但帶有 const 的不一定是 const 變量.
此處 STR_TEST 并不是常量,而是指向常量字符串的變量。
改為
const char * const STR_TEST = "Hello world!";
就可以了。
不過我又覺得改為
const char STR_TEST[] = "Hello world!"
更好。
posted on 2008-08-26 20:12
金慶
閱讀(11062)
評(píng)論(18)
編輯
收藏
引用
所屬分類:
1. C/C++
評(píng)論
#
re: "multiple definition of" 錯(cuò)誤
2008-08-27 00:33
TheAnswer
const char * const STR_TEST = "Hello world!";
前面那個(gè)const可以去掉的 效果一樣的
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤
2008-08-27 08:59
Kevin Lynx
概念性問題而已。
const int a = 12; 表示a 是個(gè)常量
const char * STR_TEST = "Hello world!";表示STR_TEST指向的內(nèi)容是常量,但其本身(作為一個(gè)指針變量而言)不是一個(gè)常量。
所以:
char * const STR_TEST = ".." 即可
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤
2008-08-27 09:09
金慶
@TheAnswer
char * const STR_TEST = "Hello world!";
STR_TEST[0] = 'X';
會(huì)通過編譯,所以不能去掉前面的const.
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤[未登錄]
2008-08-27 09:48
raof01
const 變量默認(rèn)是 static 的?誰說的?
multiple definition并不是由其constness不正確而導(dǎo)致的。
char * const p = "....";(p為常量,存放在常量表中,鏈接時(shí)沒問題)或者static char * p = "....";(限制p的作用域?yàn)榫幾g單元,但p可修改)即可,因?yàn)樽址旧硎亲置娉A浚荒苄薷摹?br>
因此,你這里的錯(cuò)誤是由于全局變量使用錯(cuò)誤導(dǎo)致的,與const無關(guān)。按照你最初的定義,在多個(gè)cpp中包含該global.h就相當(dāng)于多次定義了STR_TEST。因此鏈接時(shí)會(huì)出錯(cuò)。
const char STR_TEST[] = "Hello world!";這里有個(gè)拷貝操作,相當(dāng)于多用了一倍的空間。
建議你看看“C++:一些基礎(chǔ)知識(shí)”(
http://blog.chinaunix.net/u/12783/showart_548200.html
)3和4條
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤
2008-08-27 10:28
abettor
加了
#ifndef GLOBAL_H
#define GLOBAL_H
#endif
還出現(xiàn)重復(fù)定義?不解中……
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤
2008-08-27 10:29
theanswerzju
@金慶
會(huì)有運(yùn)行時(shí)錯(cuò)誤的這位大哥
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤
2008-08-27 10:30
theanswerzju
@abettor
這個(gè)防護(hù)宏只能防止一個(gè)cpp里重復(fù)包含
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤
2008-08-27 10:56
komac
文章內(nèi)容有誤導(dǎo)性,定義一個(gè)常量在多個(gè)文件中使用如果是定義在頭文件中就會(huì)出現(xiàn)multi definition的錯(cuò)誤,只需要把你想用的變量定義在cpp文件里面,然后在h文件里面用external關(guān)鍵字聲明即可。出現(xiàn)多次定義的原因是多次包含,雖然用了ifndef define endif 也不可以避免在多個(gè)不想干文件里面包含該頭文件所產(chǎn)生的錯(cuò)誤。
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤[未登錄]
2008-08-27 10:57
raof01
@abettor,@theanswerzju
IMHO,你們對(duì)于變量的定義理解存在問題。參考“C/C++:如何理解復(fù)雜的聲明”(
http://blog.chinaunix.net/u/12783/showart_378340.html
)。
變量定義一次就分配一次存儲(chǔ)。多次包含global.h,則多次為STR_TEST分配空間。編譯器正常是因?yàn)榉珠_編譯。鏈接異常是因?yàn)橛卸鄠€(gè)存儲(chǔ)叫做STR_TEST,通過STR_TEST引用存儲(chǔ)存在二義性。
而且inclusion guard是防止一個(gè)h被重復(fù)包含,而不是在一個(gè)cpp里重復(fù)包含。最基礎(chǔ)的書籍關(guān)于這點(diǎn)也是很清楚的。
與inclusion guard無關(guān)。
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤[未登錄]
2008-08-27 10:58
raof01
@komac
你沒有理解博主的意思。
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤[未登錄]
2008-08-27 10:59
raof01
OMG!看了這么多留言才知道,只有kevin lynx和博主——當(dāng)然也包括本人——知道討論的是什么問題。
IMHO,其他人該好好鞏固一下基礎(chǔ)了。
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤
2008-08-27 13:23
金慶
@raof01
看了你的文章,很好,學(xué)到了 bitwise constant.
const char STR_TEST[] = "Hello world!";
確實(shí)多用了空間, 看來還是用 const char * const 好,這樣只需復(fù)制指針。
const 變量默認(rèn)是 static,應(yīng)該是C++標(biāo)準(zhǔn)說的吧。不然我的代碼就會(huì)編譯出錯(cuò)。
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤[未登錄]
2008-08-27 13:43
raof01
@金慶
c++標(biāo)準(zhǔn)哪里有?把原話貼過來啊。
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤[未登錄]
2008-08-27 13:46
raof01
考慮這種情況:
void foo()
{
int const a = 10;
a++;
}
如果const默認(rèn)是static,那么上面的函數(shù)應(yīng)該等價(jià)于:
void foo()
{
static int a = 10;
a++;
}
可能嗎?
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤[未登錄]
2008-08-27 13:49
raof01
考慮這種情況:
void foo()
{
int const a = 10;
}
如果const默認(rèn)是static,那么上面的函數(shù)應(yīng)該等價(jià)于:
void foo()
{
static int a = 10;
}
可能嗎?
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤
2008-08-27 19:02
金慶
@raof01
更準(zhǔn)確的說法可能是:C++中const默認(rèn)為內(nèi)部鏈接的。
我本來不甚了了,現(xiàn)在查了C++標(biāo)準(zhǔn)終于清楚了。
C++ 2003 標(biāo)準(zhǔn)下載自:
http://d.download.csdn.net/down/167339/i2005reg
原文如下:
Annex C
3.5
Change: A name of file scope that is explicitly declared const, and not explicitly declared extern, has internal linkage, while in C it would have external linkage
Rationale: Because const objects can be used as compile-time values in C + +, this feature urges programmers to provide explicit initializer values for each const. This feature allows the user to put const objects in header files that are included in many compilation units.
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤
2008-08-27 21:18
komac
@金慶
This feature allows the user to put const objects in header files that are included in many compilation units.
的確無知了,不知道const還有這個(gè)用法,慚愧慚愧
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤[未登錄]
2008-08-28 09:24
raof01
看來我的理解也不夠深刻……
回復(fù)
更多評(píng)論
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
How are dtLinks created in NavMesh
C++ parameter passing rules
Naming Conventions for Accessors
Visual Studio 2019 Compiler Hangs
Fbx File Format Identifier
查找內(nèi)存錯(cuò)誤
std::thread 中的異常會(huì)丟失調(diào)用棧
用賦值代替 protobuf CopyFrom()
vs2017 linux 編譯輸出改成 vs 格式
為 LiteIDE 添加選中標(biāo)記
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 金慶
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
久久综合久久久
|
久久久久久999
|
国产精品日韩精品
|
先锋影音久久
|
亚洲欧美视频一区
|
国产亚洲欧美另类一区二区三区
|
久久成人久久爱
|
久久成人精品
|
亚洲免费影院
|
亚洲免费视频观看
|
韩国免费一区
|
亚洲黄色免费电影
|
欧美日韩国产丝袜另类
|
欧美一区二区三区免费看
|
欧美在线观看视频一区二区三区
|
噜噜噜噜噜久久久久久91
|
亚洲激情网站
|
亚洲视频欧美在线
|
国产综合婷婷
|
亚洲区免费影片
|
国产精品一区二区三区四区五区
|
麻豆成人91精品二区三区
|
欧美日韩亚洲一区二区三区在线观看
|
一区二区三区精品在线
|
99re视频这里只有精品
|
欧美日韩国产123区
|
欧美在线视频导航
|
欧美aa在线视频
|
亚洲欧美日韩综合一区
|
久久一区二区精品
|
亚洲欧美另类久久久精品2019
|
久久国产精品久久久久久
|
99精品热6080yy久久
|
欧美一区二区在线
|
亚洲一区二区黄
|
美女91精品
|
欧美一区免费
|
欧美日韩国产一区二区三区地区
|
久久久久国产精品一区二区
|
欧美日韩二区三区
|
欧美成人国产va精品日本一级
|
国产精品乱人伦中文
|
亚洲区免费影片
|
亚洲国产精品成人精品
|
午夜欧美理论片
|
亚洲午夜激情免费视频
|
女同一区二区
|
女女同性女同一区二区三区91
|
国产精品久久婷婷六月丁香
|
亚洲国产欧美另类丝袜
|
在线观看一区二区精品视频
|
性8sex亚洲区入口
|
欧美一区1区三区3区公司
|
国产精品sss
|
亚洲图片在线观看
|
在线视频免费在线观看一区二区
|
噜噜噜91成人网
|
免费观看久久久4p
|
黄色一区二区在线
|
欧美中文日韩
|
久久看片网站
|
一区免费视频
|
久久久亚洲精品一区二区三区
|
久久成人免费视频
|
久久国产精品久久w女人spa
|
国产精品国产自产拍高清av王其
|
日韩视频精品
|
亚洲欧美日韩在线一区
|
国产精品成人观看视频免费
|
亚洲国产欧美不卡在线观看
|
亚洲乱码国产乱码精品精天堂
|
免费看成人av
|
最新成人在线
|
国产精品99久久久久久久久久久久
|
欧美在线视频网站
|
国产精品a级
|
亚洲在线第一页
|
欧美一区二区精品久久911
|
国产精品夜色7777狼人
|
校园激情久久
|
欧美电影免费观看高清完整版
|
黄色亚洲网站
|
欧美精品99
|
中文av字幕一区
|
久久精品国产精品亚洲
|
精品成人在线
|
欧美激情一区二区三区蜜桃视频
|
日韩视频中午一区
|
欧美影院一区
|
1024成人
|
欧美视频日韩视频
|
午夜一级在线看亚洲
|
欧美刺激性大交免费视频
|
99re6这里只有精品视频在线观看
|
欧美日韩一区二区三区在线看
|
亚洲伊人久久综合
|
免费中文字幕日韩欧美
|
亚洲永久免费视频
|
激情成人av在线
|
欧美调教视频
|
久久久最新网址
|
99精品视频免费全部在线
|
久久黄色小说
|
亚洲免费观看
|
好吊日精品视频
|
欧美性生交xxxxx久久久
|
亚洲欧美成人一区二区在线电影
|
狼狼综合久久久久综合网
|
亚洲在线观看免费视频
|
国内久久精品
|
欧美日韩在线影院
|
蜜桃av综合
|
亚洲欧美日韩成人
|
亚洲激情欧美激情
|
久久婷婷麻豆
|
亚洲欧美文学
|
一本色道久久综合亚洲精品不卡
|
久久影院午夜论
|
亚洲婷婷在线
|
一本色道久久88综合亚洲精品ⅰ
|
午夜精品区一区二区三
|
亚洲九九精品
|
亚洲福利在线看
|
国产一区二区三区观看
|
国产精品黄色
|
欧美视频日韩视频在线观看
|
欧美天天视频
|
亚洲精品视频免费观看
|
麻豆精品视频在线观看视频
|
午夜精品短视频
|
一区二区三区欧美日韩
|
亚洲电影免费观看高清完整版在线
|
国产农村妇女毛片精品久久莱园子
|
久久亚洲春色中文字幕
|
亚洲在线第一页
|
中文网丁香综合网
|
一本久久a久久免费精品不卡
|
免费看黄裸体一级大秀欧美
|
久久精品中文字幕一区
|
亚洲欧美日韩系列
|
亚洲自拍16p
|
性欧美暴力猛交69hd
|
欧美在线视频一区二区
|
久久福利毛片
|
久久久久五月天
|
久久久久久久久久久一区
|
久久男人av资源网站
|
久久视频这里只有精品
|
久久综合狠狠综合久久激情
|
久久综合狠狠综合久久综青草
|
久久性天堂网
|
欧美成人视屏
|
亚洲黄色一区
|
一本一本久久
|
亚洲综合大片69999
|
久久国产欧美精品
|
久久人人超碰
|
欧美精品免费在线观看
|
欧美日韩在线大尺度
|
国产精品视频网址
|
国产亚洲美州欧州综合国
|
亚洲二区在线视频
|
亚洲精品国产精品乱码不99
|
在线午夜精品
|
欧美一区二区在线免费观看
|
久久亚洲精品视频
|
欧美激情精品久久久久久
|
亚洲免费不卡
|
亚洲欧美久久久
|
久久最新视频
|
欧美日韩一视频区二区
|
国产一区二区三区黄视频
|
亚洲人成网在线播放
|
亚洲欧美日韩网
|
欧美国产在线观看
|
亚洲网站在线播放
|
久久深夜福利
|
国产精品久久久久久久久婷婷
|
欧美区高清在线
|
国产情人节一区
|
91久久午夜
|
欧美中文字幕在线视频
|
亚洲丁香婷深爱综合
|
亚洲欧美精品伊人久久
|
欧美激情在线免费观看
|
国产精品综合不卡av
|
亚洲精品影视
|
久久久久中文
|
一本色道婷婷久久欧美
|
猛男gaygay欧美视频
|
国产精品香蕉在线观看
|
91久久夜色精品国产网站
|
欧美一区二区三区免费大片
|
亚洲久久视频
|
久热精品视频
|
国产一区二区三区日韩
|
亚洲一区视频在线观看视频
|
欧美激情视频网站
|
久久九九免费视频
|
国产麻豆精品theporn
|