SOGO論壇

標題: 條件運算子 ? : 及 sizeof ( ) 及 typedef [列印本頁]

作者: if8051    時間: 2013-10-18 09:26:42     標題: 條件運算子 ? : 及 sizeof ( ) 及 typedef


結果   邏輯運算式    真    假

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 取代

作者: imaging79    時間: 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);




歡迎光臨 SOGO論壇 (https://oursogo.com/) Powered by OURSOGO.COM