青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
金慶的專欄
C++博客
::
首頁(yè)
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
::
423 隨筆 :: 0 文章 :: 454 評(píng)論 :: 0 Trackbacks
公告
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(12)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆分類
(502)
1. C/C++(166)
(rss)
2. 網(wǎng)游開(kāi)發(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è)
公告照片
搜索
積分與排名
積分 - 662249
排名 - 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ò)誤(11074)
2.?SVN中邪惡的replace(11000)
3.?VS2005編譯libevent(10456)
4.?混音算法的學(xué)習(xí)與研究(10258)
5.?C調(diào)用lua腳本的效率測(cè)試(9025)
評(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!";
就可以了。
不過(guò)我又覺(jué)得改為
const char STR_TEST[] = "Hello world!"
更好。
posted on 2008-08-26 20:12
金慶
閱讀(11074)
評(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
概念性問(wèn)題而已。
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ì)通過(guò)編譯,所以不能去掉前面的const.
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤[未登錄](méi)
2008-08-27 09:48
raof01
const 變量默認(rèn)是 static 的?誰(shuí)說(shuō)的?
multiple definition并不是由其constness不正確而導(dǎo)致的。
char * const p = "....";(p為常量,存放在常量表中,鏈接時(shí)沒(méi)問(wèn)題)或者static char * p = "....";(限制p的作用域?yàn)榫幾g單元,但p可修改)即可,因?yàn)樽址旧硎亲置娉A浚荒苄薷摹?br>
因此,你這里的錯(cuò)誤是由于全局變量使用錯(cuò)誤導(dǎo)致的,與const無(wú)關(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ò)誤[未登錄](méi)
2008-08-27 10:57
raof01
@abettor,@theanswerzju
IMHO,你們對(duì)于變量的定義理解存在問(wèn)題。參考“C/C++:如何理解復(fù)雜的聲明”(
http://blog.chinaunix.net/u/12783/showart_378340.html
)。
變量定義一次就分配一次存儲(chǔ)。多次包含global.h,則多次為STR_TEST分配空間。編譯器正常是因?yàn)榉珠_(kāi)編譯。鏈接異常是因?yàn)橛卸鄠€(gè)存儲(chǔ)叫做STR_TEST,通過(guò)STR_TEST引用存儲(chǔ)存在二義性。
而且inclusion guard是防止一個(gè)h被重復(fù)包含,而不是在一個(gè)cpp里重復(fù)包含。最基礎(chǔ)的書(shū)籍關(guān)于這點(diǎn)也是很清楚的。
與inclusion guard無(wú)關(guān)。
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤[未登錄](méi)
2008-08-27 10:58
raof01
@komac
你沒(méi)有理解博主的意思。
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤[未登錄](méi)
2008-08-27 10:59
raof01
OMG!看了這么多留言才知道,只有kevin lynx和博主——當(dāng)然也包括本人——知道討論的是什么問(wèn)題。
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í)多用了空間, 看來(lái)還是用 const char * const 好,這樣只需復(fù)制指針。
const 變量默認(rèn)是 static,應(yīng)該是C++標(biāo)準(zhǔn)說(shuō)的吧。不然我的代碼就會(huì)編譯出錯(cuò)。
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤[未登錄](méi)
2008-08-27 13:43
raof01
@金慶
c++標(biāo)準(zhǔn)哪里有?把原話貼過(guò)來(lái)啊。
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤[未登錄](méi)
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ò)誤[未登錄](méi)
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)確的說(shuō)法可能是:C++中const默認(rèn)為內(nèi)部鏈接的。
我本來(lá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.
的確無(wú)知了,不知道const還有這個(gè)用法,慚愧慚愧
回復(fù)
更多評(píng)論
#
re: "multiple definition of" 錯(cuò)誤[未登錄](méi)
2008-08-28 09:24
raof01
看來(lái)我的理解也不夠深刻……
回復(fù)
更多評(píng)論
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
相關(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
博問(wèn)
Chat2DB
管理
Powered by:
C++博客
Copyright © 金慶
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
欧美国产日本高清在线
|
欧美高清成人
|
国内精品久久久久久久果冻传媒
|
欧美成人资源
|
欧美精品一区二区三区蜜臀
|
麻豆91精品
|
欧美激情第8页
|
欧美午夜精品久久久久久孕妇
|
久久精品视频导航
|
久久精品色图
|
欧美黄色精品
|
国产精品国产
|
国产一区视频观看
|
亚洲精品少妇网址
|
午夜一区二区三视频在线观看
|
午夜精品久久久久久99热软件
|
久久精品国产精品亚洲精品
|
欧美大片在线观看一区二区
|
99热精品在线观看
|
久久大香伊蕉在人线观看热2
|
欧美承认网站
|
国产日韩av高清
|
亚洲精品中文字幕女同
|
在线亚洲免费
|
美女精品网站
|
亚洲视频二区
|
欧美成年人在线观看
|
欧美日韩久久不卡
|
99精品国产在热久久
|
国产欧美日韩中文字幕在线
|
激情欧美日韩
|
亚洲免费在线观看
|
亚洲第一视频
|
一区二区三区国产在线观看
|
欧美在线三区
|
国产精品久久激情
|
91久久综合亚洲鲁鲁五月天
|
性欧美1819sex性高清
|
亚洲黄色成人
|
久久视频这里只有精品
|
国产九九精品
|
亚洲在线中文字幕
|
亚洲黄色av一区
|
久久久精彩视频
|
国产精品国产一区二区
|
99re热精品
|
亚洲电影欧美电影有声小说
|
久久精品免视看
|
亚洲福利av
|
久久综合久久久
|
国产一区二区三区四区
|
午夜久久久久久久久久一区二区
|
亚洲激情视频在线观看
|
久久一二三四
|
在线精品亚洲
|
噜噜噜在线观看免费视频日韩
|
亚洲综合不卡
|
国产精品一区在线播放
|
午夜天堂精品久久久久
|
一本色道久久精品
|
国产精品jvid在线观看蜜臀
|
在线视频欧美日韩精品
|
欧美黄色成人网
|
老妇喷水一区二区三区
|
激情综合视频
|
免费av成人在线
|
久久全国免费视频
|
韩国成人理伦片免费播放
|
久久一日本道色综合久久
|
久久精精品视频
|
亚洲福利免费
|
亚洲精品一二三区
|
国产精品美女久久久久av超清
|
午夜影院日韩
|
久久国产夜色精品鲁鲁99
|
亚洲成人在线免费
|
亚洲欧洲视频
|
国产精品视频福利
|
久久野战av
|
欧美绝品在线观看成人午夜影视
|
亚洲视频网在线直播
|
亚洲一区二区3
|
国外成人在线视频
|
亚洲国产成人在线视频
|
欧美日韩视频在线一区二区观看视频
|
亚洲视频在线观看网站
|
欧美国产日韩一区二区在线观看
|
91久久精品一区
|
亚洲精品国产精品国产自
|
欧美日韩亚洲高清
|
欧美在线一区二区三区
|
久久嫩草精品久久久久
|
一区二区三区你懂的
|
亚洲欧美一区二区三区在线
|
精品99一区二区三区
|
亚洲精品乱码久久久久久蜜桃麻豆
|
欧美中文字幕在线观看
|
久久这里有精品视频
|
99视频有精品
|
午夜亚洲福利
|
一区二区欧美在线
|
亚洲一区在线播放
|
在线免费观看视频一区
|
日韩视频一区二区在线观看
|
国语自产精品视频在线看8查询8
|
欧美成人午夜剧场免费观看
|
欧美国产精品
|
欧美影院在线
|
欧美日韩在线播
|
久久婷婷综合激情
|
欧美人在线观看
|
噜噜噜91成人网
|
国产欧美精品日韩区二区麻豆天美
|
欧美18av
|
国产精品色婷婷久久58
|
亚洲激情在线观看视频免费
|
国产精一区二区三区
|
亚洲国产欧美在线人成
|
国产欧美日韩另类视频免费观看
|
亚洲国产精品电影
|
韩国一区电影
|
一区二区精品在线观看
|
亚洲欧洲日产国码二区
|
久久亚洲欧美
|
久久久免费av
|
国产日韩一区欧美
|
一区二区三区黄色
|
亚洲午夜久久久久久久久电影院
|
亚洲视频免费在线
|
欧美日韩国产系列
|
亚洲电影毛片
|
在线观看日韩国产
|
欧美一级久久久久久久大片
|
亚洲一区日韩在线
|
国产精品扒开腿爽爽爽视频
|
亚洲国产专区
|
国产精品99久久不卡二区
|
久久久久久999
|
欧美午夜精品久久久久久孕妇
|
欧美jizzhd精品欧美巨大免费
|
国产视频精品免费播放
|
一区二区黄色
|
亚洲综合丁香
|
国产精品精品视频
|
一区二区精品在线
|
亚洲男女自偷自拍
|
国产精品自拍网站
|
亚洲男人的天堂在线aⅴ视频
|
亚洲午夜在线观看
|
欧美视频在线免费
|
一区二区三区四区五区视频
|
99精品欧美一区二区蜜桃免费
|
欧美99在线视频观看
|
欧美黄色aa电影
|
日韩一区二区精品
|
欧美精品日韩一本
|
夜夜嗨av色一区二区不卡
|
亚洲午夜羞羞片
|
国产欧美一区二区三区在线看蜜臀
|
久久影视精品
|
亚洲国产成人高清精品
|
一区二区三区不卡视频在线观看
|
欧美极品一区
|
中文成人激情娱乐网
|
先锋影音久久久
|
国产精品一区二区女厕厕
|
亚欧美中日韩视频
|
久久久久国产一区二区
|
亚洲国产精品久久久久秋霞蜜臀
|
巨乳诱惑日韩免费av
|
亚洲国产清纯
|
亚洲欧美日韩综合
|
黄色日韩网站
|
欧美激情一区二区三区蜜桃视频
|
一区二区三区蜜桃网
|
久久精品免费看
|
在线看成人片
|
欧美三级视频在线观看
|
午夜精品久久久久久久久久久久久
|
欧美国产一区二区在线观看
|
亚洲调教视频在线观看
|
久久成人免费电影
|
一区二区三区日韩欧美
|
国产亚洲精品资源在线26u
|
久久乐国产精品
|
日韩午夜在线播放
|
久久久亚洲精品一区二区三区
|
亚洲欧洲在线一区
|
国产精品视频内
|
欧美fxxxxxx另类
|
亚洲欧美日韩一区二区三区在线
|
美日韩精品视频
|
欧美一区二区三区精品
|
最新国产乱人伦偷精品免费网站
|
亚洲国产精品免费
|
国产欧美一区二区三区沐欲
|
久久久久国产精品厨房
|
欧美在线中文字幕
|
一区二区高清视频在线观看
|
亚洲丁香婷深爱综合
|