如何寫出專業的C標頭檔案

2021-05-22 15:28:38 字數 2117 閱讀 8614

做到專業,應該是每個職業程式設計師應該要求自己做到的。

讓我們看看lua 是 怎麼寫標頭檔案的。

1.license agreement

license agreement 應該加在每個標頭檔案的頂部。

整個標頭檔案應該在guard define 之間

#ifndef lua_h

#define

lua_h

#endif

另外,如果這個標頭檔案可能給 c++

使用,要加上

#ifdef __cplusplus

extern"c

"#endif

3. 盡量不要在標頭檔案中暴露資料結構

這樣可以使用者對你的實現的依賴,也減少了使用者的編譯時間

typedef 

struct

lua_state lua_state;

lua_api lua_state 

*lua_open (

void

);lua_api 

void

lua_close (lua_state 

*l);

可以看到雖然使用者會一直使用 lua_state, 但是並不知道 lua_state 的 結構是什麼

從乙個使用 lua 的例子程式可以看出:

#include 

"lua.h

"#include 

"lauxlib.h

"#include 

"lualib.h

"int

main(

intargc, 

char

*argv)

4 .函式宣告前加 ***_api 已 利於拓展

lua 的例子

#ifndef lua_api

#define

lua_api              extern

#endif

lua_api lua_state 

*lua_open (

void);

如果定義了 lua_api 就是給 lua 內 部使用的

如果沒定義 lua_api 就是 for user 的

寫 window dll 程式經常會用到

#ifdef dlltest_exports

#define

dlltest_api __declspec(dllexport)

#else

#define

dlltest_api __declspec(dllimport)

#endif

5. 巨集的定義

盡量使用括號來包住所定義的物件

#define

lua_tnone       (-1)

#define

lua_register(l,n,f) /

(lua_pushstring(l, n), /

lua_pushcfunction(l, f), /

lua_settable(l, lua_globalsindex))

6. 目錄結構

一般應該使用乙個單獨的 include 目錄來包含要發布的標頭檔案,但不應該把內 部使用的標頭檔案包含進去。

lua   的 include 目錄只包含了三個頭文 件

lauxlib.h , lua.h, lualib.h

非常簡潔

如何寫出專業的C標頭檔案

做到專業,應該是每個職業程式設計師應該要求自己做到的。讓我們看看lua是怎麼寫標頭檔案的。1.license agreement license agreement應該加在每個標頭檔案的頂部。整個標頭檔案應該在guard define之間 ifndef lua h define lua h endi...

如何寫出專業的標頭檔案

做到專業,應該是每個職業程式設計師應該要求自己做到的。讓我們看看lua是怎麼寫標頭檔案的。1.license agreement license agreement應該加在每個標頭檔案的頂部。整個標頭檔案應該在guard define之間 ifndef lua h define lua h endi...

如何寫出最快的迴圈

作者 laruence 你知道怎麼寫出最快的迴圈麼?剛剛在曉東郭的 blog 看到乙個有趣的問題 php 中 i 和 i 的區別 1.方式一 2.3.begin time 4.i 0 5.while i 10000 6.12.end time 13.14.時間 16s 15.16.方式二 17.18...