我發現這個代碼from here這個rsAssert宏的含義是什麼?
#if 1
#define rsAssert(v) do {if(!(v)) LOGE("rsAssert failed: %s, in %s at %i", #v, __FILE__, __LINE__);} while(0)
#else
#define rsAssert(v) while(0)
#endif
問題1:
這裏我沒有得到爲什麼do and while
在這裏使用?有什麼特別的理由使用它?
問題2:
是什麼做的這一切在宏的目的。爲什麼只有一個不使用assert()
?
我想也許有這個正當的理由..
+1表示assert()會中止程序,並且此宏不會.. !!! – 2012-02-20 17:33:48