Posted on 2013-01-24 10:26 
魏尚堂 阅读(687) 
评论(0)  编辑 收藏 引用  
			 
			
		 
		thinking in c++ 有下面的例子,不太理解为什么这个宏中的条件表达式在编译时就执行了,在此作个记号
// A simple, compile-time assertion facility
#define STATIC_ASSERT(x) \
   do { typedef int a[(x) ? 1 : -1]; } while(0)
int main()
{
   STATIC_ASSERT(sizeof(int) <= sizeof(long));  // Passes
   STATIC_ASSERT(sizeof(double) <= sizeof(int)); // Fails 
   return 0;
}