编辑“︁
Typedef
”︁(章节)
跳转到导航
跳转到搜索
Template:Editnotice load/content
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
=== 創建一個具有特別意義的資料型別 === <code>typedef</code>會被用來指定一種資料型別的意義。 例如 : 以下示範一個普通的宣告,速度及分數都被宣告為<code>int</code> <syntaxhighlight lang="c++"> int current_speed ; int high_score ; void congratulate(int your_score) { if (your_score > high_score) ... </syntaxhighlight>通過<code>typedef</code>來指定新的資料型別的意義:<syntaxhighlight lang="c++"> typedef int km_per_hour ; typedef int points ; km_per_hour current_speed ; //"km_per_hour" is synonymous with "int" here, points high_score ; //and thus, the compiler treats our new variables as integers. void congratulate(points your_score) { if (your_score > high_score) ... </syntaxhighlight>前面兩段程式碼運作狀況一樣,但是使用<code>typedef</code>的第二段程式碼更清楚的表示了兩個變數(score和speed),雖然資料型別都是<code>int</code>,卻是各自代表不同的意義,且他們的資料並不相容。 但請注意,其清楚的表示不同意義只是對於工程師而言,C/C++的編譯器認為兩個變數都是<code>int</code>時,並不會顯示警告或錯誤,如: 以下程式碼,使用宣告為速度的變數作為<code>congratulate</code>函式的參數 : <syntaxhighlight lang="c++"> void foo() { km_per_hour km100 = 100; congratulate(km100); </syntaxhighlight> 但是,雖然在上面的程式碼中,編譯器認為"km_per_hour"等於<code>int</code>,但在使用前綴 <code>unsigned</code>, <code>long</code>, <code>signed</code>時,兩者並不能互換使用。<syntaxhighlight lang="c++"> void foo() { unsigned int a; // Okay unsigned km_per_hour b; // Compiler complains long int c; // Okay long km_per_hour d; // Compiler complains </syntaxhighlight> 另一个例子: <syntaxhighlight lang="c"> int coxes; int jaffa; ... coxes++; ... if (jaffa == 10) ... </syntaxhighlight> 現在來看以下程式碼: <syntaxhighlight lang="c"> typedef int Apple; typedef int Orange; Apple coxes; Orange jaffa; ... coxes++; ... if (jaffa == 10) ... </syntaxhighlight> 這兩段程式碼都做同樣的一件事。第二個例子使用了 <code>typedef</code>,使其更易於了解將要進行什麼。也就是一個變數包含關於蘋果的資訊,而另一個包含關於橘子的資訊。
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息