c、cpp中使用匿名结构体、类定义数组
浏览:2226次 出处信息
今天在翻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语言结构体里的成员数组和指针 (阅读:5121)
- 结构体初始化的方法 (阅读:2385)
- mysql innodb 文件相关的三个重要结构体 (阅读:2177)
- HAProxy几个重要的结构体 (阅读:1790)
- 根据成员地址获取结构体变量 (阅读:1767)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
后一篇:Win7下修改网卡的MAC地址 >>
文章信息
- 作者:Dante 来源: Vimer
- 标签: 类定义数组 结构体
- 发布时间:2010-09-27 00:14:40
近3天十大热文
-
[78] memory prefetch浅析
-
[56] 转载:cassandra读写性能原理分析
-
[54] 深入浅出cassandra 4 数据一致性问
-
[47] 基本排序算法的PHP实现
-
[46] 字符引用和空白字符
-
[43] JS中如何判断字符串类型的数字
-
[42] MySQL半同步存在的问题
-
[40] 获取Dom元素的X/Y坐标
-
[40] Inline Form Labels
-
[39] javascript插入样式