SOGO論壇
  登入   註冊   找回密碼
查看: 1024|回覆: 1
列印 上一主題 下一主題

[技術文章] 條件運算子 ? : 及 sizeof ( ) 及 typedef [複製連結]

Rank: 4

數位軟體勳章

狀態︰ 離線
跳轉到指定樓層
1
發表於 2013-10-18 09:26:42 |只看該作者 |倒序瀏覽

結果   邏輯運算式    真    假

min = ( a < b )  ?  a  :  b ;


相同意義之程式

if ( a < b )
     min = a ;

else
     min = b ;

************************************************

sizeof ( 資料型態 ) ;

ANSI C 32 個關鍵字之一
求 byte 數
不像  =  要在程式執行後,才能計算出結果

sizeof (  ) 是直接在編譯時產生結果的


************************************************

typedef  unsigned int  uint ;     // 留意有 ; 符號

型態定義:重新進行資料型態定義
以下程式中 uint 的資料型態就是 unsigned int



另一種寫法

#define  uint  unsigned int       // 留意無符號

以巨集 macro 的寫法,往後程式中 uint 以 unsigned int 取代
喜歡嗎?分享這篇文章給親朋好友︰
               感謝作者     

Rank: 5Rank: 5

狀態︰ 離線
2
發表於 2013-10-18 23:56:27 |只看該作者
本帖最後由 imaging79 於 2013-10-28 08:56 編輯

所以意思說 sizeof 不會影響執行效能囉,這讓我長知識了

另外最近常寫linux source code
常看到以下程式寫法
struct _myStruct {
...
};
typedef _myStruct myStruct;
typedef myStruct *myStructPtr;

這樣以後要使用_myStruct的指標時程式碼就不會充斥著難讀的*符號了
myStructPtr a = &...;
a->... = ...;

還有常看到 typedef 用來定義 function prototype (例如定義 callback function prototype)
typedef int (*Myfunc)(int,int);
Myfunc A,B;
等同於
int (*A)(int,int);
int (*B)(int,int);
請注意︰利用多帳號發表自問自答的業配文置入性行銷廣告者,將直接禁訪或刪除帳號及全部文章!
您需要登錄後才可以回覆 登入 | 註冊


本論壇為非營利自由討論平台,所有個人言論不代表本站立場。文章內容如有涉及侵權,請通知管理人員,將立即刪除相關文章資料。侵權申訴或移除要求:abuse@oursogo.com

GMT+8, 2024-5-7 16:19

© 2004-2024 SOGO論壇 OURSOGO.COM
回頂部