c、cpp中使用匿名结构体、类定义数组
浏览:2177次 出处信息
今天在翻unix网络编程的时候,无意中看到了使用匿名定义结构体/类定义数组的一段代码。
于是写了测试代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
#include <iostream> #include <string> #include <vector> #include <map> using namespace std; struct st { int a; int b; char *p; int c; }sts[]={ {1,1,"hh",1}, {2,2,"ff",2} }; class CObj { public: int a; string s; int b; }objs[]={ {1,"x",11}, {2,"y",22} }; int main(int argc, const char *argv[]) { for (int i = 0; i < 2; i++) { printf("%d,%d,%s,%d\n",(sts+i)->a,(sts+i)->b,(sts+i)->p,(sts+i)->c); } for (int i = 0; i < 2; i++) { printf("%d,%s,%d\n",(objs+i)->a,(objs+i)->s.c_str(),(objs+i)->b); } } |
运行结果如下:
1,1,hh,1 2,2,ff,2 1,x,11 2,y,22
整个调用过程中,都没有用st或者CObj显示创建任何参数,调用起来要简洁很多,简直比python还要简洁。
用python的代码来表示的话:
1 2 3 4 |
sts = ( (1,1,"hh",1), (2,2,"ff",2) ) |
但python不支持匿名类的定义,只能用下标来访问数据,这样看来倒是C的表现更好一些呢。
记录一下,有机会在项目中用一下。
建议继续学习:
- C语言结构体里的成员数组和指针 (阅读:4860)
- 结构体初始化的方法 (阅读:2332)
- mysql innodb 文件相关的三个重要结构体 (阅读:2128)
- 根据成员地址获取结构体变量 (阅读:1700)
- HAProxy几个重要的结构体 (阅读:1646)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
后一篇:Win7下修改网卡的MAC地址 >>
文章信息
- 作者:Dante 来源: Vimer
- 标签: 类定义数组 结构体
- 发布时间:2010-09-27 00:14:40
近3天十大热文
- [45] 如何拿下简短的域名
- [45] IOS安全–浅谈关于IOS加固的几种方法
- [44] 图书馆的世界纪录
- [44] Oracle MTS模式下 进程地址与会话信
- [42] android 开发入门
- [41] 界面设计速成
- [41] 【社会化设计】自我(self)部分――欢迎区
- [39] 读书笔记-壹百度:百度十年千倍的29条法则
- [38] 视觉调整-设计师 vs. 逻辑
- [34] 程序员技术练级攻略