﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-C++学习</title><link>http://www.cppblog.com/vuleetu/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 09 Jun 2026 20:23:08 GMT</lastBuildDate><pubDate>Tue, 09 Jun 2026 20:23:08 GMT</pubDate><ttl>60</ttl><item><title>关于typedef</title><link>http://www.cppblog.com/vuleetu/archive/2009/06/05/86823.html</link><dc:creator>vuleetu</dc:creator><author>vuleetu</author><pubDate>Fri, 05 Jun 2009 02:59:00 GMT</pubDate><guid>http://www.cppblog.com/vuleetu/archive/2009/06/05/86823.html</guid><wfw:comment>http://www.cppblog.com/vuleetu/comments/86823.html</wfw:comment><comments>http://www.cppblog.com/vuleetu/archive/2009/06/05/86823.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/vuleetu/comments/commentRss/86823.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vuleetu/services/trackbacks/86823.html</trackback:ping><description><![CDATA[今天在重看C++ primier3rd 时候，无意中看到typedef这节，发现有一个以前没注意的地方。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">typedef&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">CString;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">下面这一句代表的意思与我想的不同</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">extern</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;CString&nbsp;cstr;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>按照我的思路这应该是一个指向字符常量的指针，书上给的解释是这是一个指向字符的指针常量。<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;main(</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_151_198_Open_Image onclick="this.style.display='none'; Codehighlighter1_151_198_Open_Text.style.display='none'; Codehighlighter1_151_198_Closed_Image.style.display='inline'; Codehighlighter1_151_198_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_151_198_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_151_198_Closed_Text.style.display='none'; Codehighlighter1_151_198_Open_Image.style.display='inline'; Codehighlighter1_151_198_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_151_198_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_151_198_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">CString;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;CString&nbsp;cstr;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>结果：<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>main.cpp(</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">)&nbsp;:&nbsp;error&nbsp;C2734:&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">cstr</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;:&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">object</span><span style="COLOR: #000000">&nbsp;must&nbsp;be&nbsp;initialized&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;not&nbsp;</span><span style="COLOR: #0000ff">extern</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>main.cpp(</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">)&nbsp;:&nbsp;error&nbsp;C2086:&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">cstr</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;:&nbsp;redefinition<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>也就是说，cstr为一个常量，必须要初始化，否则无法编译。</span></div>
<br>
<img src ="http://www.cppblog.com/vuleetu/aggbug/86823.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vuleetu/" target="_blank">vuleetu</a> 2009-06-05 10:59 <a href="http://www.cppblog.com/vuleetu/archive/2009/06/05/86823.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>