看看下面一段程式的功能:
/* 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...