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