一句話,用隱式指標來實現把一些不想讓別人知道的資料結構定義在.c檔案中,而不是通常的.h標頭檔案中。這樣,只要.c檔案不公開,別人就不能獲得資料結構的詳細資訊。
看乙個列子:
下面是inte***ce.h標頭檔案的內容,我們獲得這個標頭檔案,只知道有個struct sdata的資料結構和sdata_init()的函式。至於這個sdata結構包含些什麼內容我們一點不知道,所以也不可能進行什麼更改;
inte***ce.h:
#include
#include
#include
#include
typedef struct sdata * sdata;
sdata sdata_init(int i);
void sdata_print(sdata sdata);
下面我們看寫inte***ce.c檔案的內容:
#include "inte***ce.h"
struct sdata;
sdata sdata_init(int i)
void sdata_print(sdata sdata)
恩,在這個檔案中才有具體的資料結構定義和函式的實現;
寫個測試程式:
test.c
#include "inte***ce.h"
int main()
可以看到,對於寫test.c的程式設計師來說,他並不了解sdata的內部結構是怎麼樣的,
他只要根據inte***ce.h提供的函式進行各項操作就可以了。
這就是隱式指標的簡單應用。開發藉口**這很重要。
C 語言特性
a1 總的原因是,加速debug版下編譯鏈結時間.用空間換時間.具體原因為下。每乙個子程式 函式體 編譯後在 段有一定的長度,為了讓了程式緊湊,所以希望各函式體連線存放,但是在除錯 修改過程中,各函式體體會頻繁的變換長度,所以呼叫函式的個相對位址,就會需要鏈結器反覆修改.為此,各個函式體 區間並不是...
C程式設計 第八章 善於利用指標
1.輸入三個數,由大到小排序 includeint main if p1 p3 if p2 p3 printf d n d n d n p1,p2,p3 return 0 2.輸入三個字串,按由小到大的順序輸出 includeusing namespace std main if strcmp x,...
C 短路求值特性的利用
求1 2 3 n,要求不能使用乘除法 for while if else switch case等關鍵字及條件判斷語句 a?b c class solution 1.利用遞迴避免迴圈的使用 2.利用c 的短路求值特性,實現遞迴的終止,避免了條件判斷。3.短路求值 作為 和 操作符的運算元表示式,這些...