#include <iostream>
using namespace std;
#define WARN(eq, str)\
{\
if (!(eq))\
{\
cout<<"Warning, eq is not satisfied!" << str <<endl;\
}\
}
int main()
{
cout << "Hello Complex Digital World!"<<endl;
// create Complex Number: cAll
int aImg = 8, bReal = 4;
int cAll = ( aImg << 16) | bReal;
cout <<hex << " Img:" << aImg << ", Real: "<< bReal <<", Complex: "<< cAll <<endl;
//Obtain Img,Real from cAll
int cImg, cReal;
cImg = cAll >> 16;
cReal = (cAll << 16) >> 16;
cout << " cAll "<< cAll << ", cImg=" << cImg <<", cReal="<< cReal <<endl;
WARN(cImg == 8, "Imag is not 8");
WARN(cReal==16,"Real is not 16");
return 0;
}
result
Hello Complex Digital World!
Img:8, Real: 4, Complex: 80004
cAll 80004, cImg=8, cReal=4
Warning, eq is not satisfied!Real is not 16
本文档展示了如何使用C++中的#define宏定义WARN来实现条件警告输出,并通过位操作创建和解析复合数字。示例代码中,创建了一个16位复合数,并从复合数中提取出图像部分和实数部分。最后,验证了提取的值是否正确,输出了警告信息。
5574

被折叠的 条评论
为什么被折叠?



