C語言中的小技巧

2021-04-06 23:48:57 字數 1101 閱讀 9164

看看下面一段程式的功能:

/* testrcunit.cpp : 定義控制台應用程式的入口點。

*/#include

typedef void (*__cunit_test_case_func_type)();

/*! /brief 測試用例鍊錶結點。

儲存測試用例的函式指標和測試用例的名字。

*/typedef struct __tagcunittestcaselistnode

__cunit_test_case_list_node_s;

/* hack code */

static void __cunit_func_dummy_test()

static __cunit_test_case_list_node_s s_t_start = ;

static void ta();

static __cunit_test_case_list_node_s s_ta = ;

static void tb();

static __cunit_test_case_list_node_s s_tb = ;

static void tc();

static __cunit_test_case_list_node_s s_tc = ;

static void td();

static __cunit_test_case_list_node_s s_td = ;

static __cunit_test_case_list_node_s s_t_end = ;

int main(int argc, char* argv)

return 0;

}static void ta()

static void tb()

static void tc()

static void td()

簡單地說,我可以不用知道s_t_start和s_t_end之間具體定義了多少個變數,我都可以依次呼叫到。如果把這些實現**用巨集封裝起來,那麼整個**就會看起來非常簡潔明瞭。這有什麼用呢?嗯……

以上**在vc 6.0、visual studio.net 2003、g++、gcc、bcb 6.0、tc 2.0上面測試通過。

C語言小技巧c語言中static 函式和普通函式

ifdef cplusplus extern c endif cplusplus是cpp中的自定義巨集,那麼定義了這個巨集的話表示這是一段cpp的 也就是說,上面的 的含義是 如果這是一段cpp的 那麼加入extern c 處理其中的 typedef enum errortype 使用列舉enum定...

C語言中的小細節

1.位溢位 int和long現在都是4個位元組,不過現在的c裡面都沒給出乙個越界溢位的api函式,得自己注意 a 0xffffffff,b 0xffffffff 然後 a b,或者a b都會溢位,但是這樣的一處float和double都會遇到 在asm裡面會用jo和jno來判斷溢位標誌位 2.uns...

c語言中迴圈使用技巧

簡明來說不確定迴圈,不知道何時迴圈停止,而計數迴圈已知要執行多少次迴圈 其中涉及了三個重要部分 1.初始化計數器 2.計數器與有限值比較 3.每次迴圈對計數器進行有規律變化 下面用for迴圈進行舉例 for i 0 i 10 i for i 0 i 10 i 見課本習題五p138頁 17題 incl...