【初心者歓迎】C/C++室 Ver.29【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0203デフォルトの名無しさん
2006/07/16(日) 18:43:33のコードの一部の引用です
#define OP_ASSERT(x) do { \
std::stringstream out_str; \
bool bTestOk = true; \
(x); \
if ( !bTestOk) std::cout << "Assertion failed: \n'" << #x << "'\n" <<
out_str.str() << std::endl; \
} while(0)
こういうマクロを見かけたんですがこのマクロはどうして
do { } while(0)
なんてことをしているのでしょうか?
単純に{ } とブロックで囲むのとはどこか違うのでしょうか?
そもそもどうしてブロックで囲んでいるのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています