想到已丢弃MFC, C,C++的宏定义: 真的很强大!!!
#ifndef _char
#ifdef _UNICODE_
//-------------------------------宽节符
#define _char wchar_t
#define _cout std::wcout
#define _string std::wstring
#define _t(s) L##s
#define _tostr std::to_wstring
#else
#define _char char
#define _cout std::cout
#define _string std::string
#define _t(s) s
#define _tostr std::to_string
#endif
#endif
//打印出变量名 = 变量值
#define _p(var) (_cout <<#var<<_t(" = ")<<_tostr(var) << _t("\t"))
//打印出变量名 = 变量值并换行
#define _pn(var) (_cout <<#var<<_t(" = ")<<_tostr(var)<<_t("\n"))
//打印出变量名 = 变量值 (变量名必须具有 ToString() 方法)
#define _po(var) (_cout <<#var<<_t(" = ")<< var.ToString())
//打印出变量名 = 变量值并换行(变量名必须具有 ToString() 方法)
#define _pon(var) (_cout <<#var<<_t(" = ")<< var.ToString()<<_t("\n"))
//获取 变量名 = 变量值的 字符串
#define _gets(var) (_string(_t(""))+ _t(#var) + _t(" = ") + _tostr(var) + _t("\t"))
#ifndef _char
#ifdef _UNICODE_
//-------------------------------宽节符
#define _char wchar_t
#define _cout std::wcout
#define _string std::wstring
#define _t(s) L##s
#define _tostr std::to_wstring
#else
#define _char char
#define _cout std::cout
#define _string std::string
#define _t(s) s
#define _tostr std::to_string
#endif
#endif
//打印出变量名 = 变量值
#define _p(var) (_cout <<#var<<_t(" = ")<<_tostr(var) << _t("\t"))
//打印出变量名 = 变量值并换行
#define _pn(var) (_cout <<#var<<_t(" = ")<<_tostr(var)<<_t("\n"))
//打印出变量名 = 变量值 (变量名必须具有 ToString() 方法)
#define _po(var) (_cout <<#var<<_t(" = ")<< var.ToString())
//打印出变量名 = 变量值并换行(变量名必须具有 ToString() 方法)
#define _pon(var) (_cout <<#var<<_t(" = ")<< var.ToString()<<_t("\n"))
//获取 变量名 = 变量值的 字符串
#define _gets(var) (_string(_t(""))+ _t(#var) + _t(" = ") + _tostr(var) + _t("\t"))
测试结果:
(1)
(2)
(3)