11 2013 档案

为什么使用do{}while(0)来进行宏定义
摘要:最近发现很多代码在进行宏定义的时候使用喜欢使用#define MACRO_NAME(para) do{macro content}while(0)的格式,总结了以下几个原因:1,空的宏定义避免warning:#define foo() do{}while(0)2,存在一个独立的block,可以用来进行变量定义,进行比较复杂的实现。3,如果出现在判断语句过后的宏,这样可以保证作为一个整体来是实现:#define foo(x) \action1(); \action2();在以下情况下:if(NULL == pPointer) foo();就会出现action1和action2不会同时被执行的.. 阅读全文

posted @ 2013-11-28 16:08 DerDeath 阅读(510) 评论(0) 推荐(0)

单向链表的反转
摘要:#include #include #include using namespace std;class ListNode {public: ListNode *next; int data;};ListNode* reverse(ListNode * head) { ListNode *pCur, *pPrev, *pNext; pPrev = NULL; pCur = head; while (pCur != NULL) { pNext = pCur->next; pCur->next = pPrev; pPrev = pCur; pCur = pNext; } return 阅读全文

posted @ 2013-11-01 20:02 DerDeath 阅读(482) 评论(0) 推荐(0)

导航

"); }); },1000); });