如何快速输出C++结构体的成员名和其值
2016-04-14 00:58
239 查看
#include <iostream> #include <string> #define Name(X) #X #define Out(X) {string xname=Name(X);cout<<xname.substr(2,xname.size()-1)<<": "<<X<<endl;} using namespace std; struct A { int x; int y; }; struct B { float w; int u; double v; A a; }; void outA(A v) { Out(v.x); Out(v.y); } void outB(B v) { Out(v.a.x); Out(v.a.y); Out(v.u); Out(v.v); Out(v.w); } int main() { A a={1,2}; B b={1.1,10,2.34,a}; outA(a); outB(b); return 0; }
使用宏,#X可以表示变量的名字,可以输出为字符。但是不能直接用于代码中,将其存储到string中,可以使用string类型的所有方法。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性