close

◎系統內建的資料型態(build-in data type),與使用者自行定義的資料型態(user defined data type)有什麼不同?

 ※系統內建的資料結構,如:char、int、float、double…等等。
    使用者自行定義的資料結構,如:struct、union…等等。

 

user defined data type:

譬如說現在有人寫了一個能表示虛數的 struct Complex

typedef struct ComplexN{
     double real;
     double image;
} Complex;

如果我們在不知道該作者是如何定義這個stuct的話
(不知道裡面只有real和image兩個變數),
我們不但不知道該怎麼使用Complex,也無法存取甚至是運算他。

但是相對而言,只要知道這個結構是怎麼定義的,
任何人都可以寫「自己的」function去存取這個結構
(卻不使用該作者已經提供的function),
甚至是改變這個結構內的data value。

 

build-in data type:

就算我們不知道系統是如何定義這些資料型態,
我們還是可以很順利、很直覺的去使用他們。
譬如說 double,正常情況下一般使用者是不知道系統是如何定義 double 的,
但是我們並沒有因為如此就不知道該怎麼使用double,
我們還是可以很順利的宣告出double型態的變數,並且存取與運算。

假設使用者要存取這些build-in data type,
他們只能使用系統內建的指令去存取、去運算,
使用者無法自己寫 function 去存取與運算 double 這個資料型態。
(well-defined,這確保了資料的安全性)



總之迺衛老師想表達的就是,一個 well-define 的語言,
是可以讓使用者知道「how to use it」即可,
他們不必知道「how it works」。

這樣簡單的觀念老師就上了一整節課,真是佛心來著~

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 翠西亞 的頭像
    翠西亞

    翠西亞的風乾角落

    翠西亞 發表在 痞客邦 留言(0) 人氣()