免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1857 | 回复: 2
打印 上一主题 下一主题

linux c 里有没有对结构体实现类似php foreach功能的方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-02-03 17:52 |只看该作者 |倒序浏览
如:
  1. struct st
  2. {
  3. int a;
  4. char b;
  5. int *c;
  6. };
复制代码


我想实现:
  1. foreach($st as $key=>;$value)
  2. printf("%s = %s",$key,$value);
复制代码


前提条件是我不知结构体中有类似int a 定义,有办法实现吗?谢谢。

论坛徽章:
0
2 [报告]
发表于 2005-02-04 21:25 |只看该作者

linux c 里有没有对结构体实现类似php foreach功能的方法

先说明:我不会php,不过对perl倒是有些了解,perl里面也有个foreach
如果用C实现,不知道这个合不合你意:

  1. char *p;
  2. struct st s;
  3. for(p=&p<(s+sizeof(s));p++)
  4. {
  5. /* do sth */
  6. }
复制代码

不过……前提是st中的所有元素都是1字节
(当然,如果p是int *的话,st中的所有元素则可以都是sizeof(int)个字节)

论坛徽章:
0
3 [报告]
发表于 2005-02-05 13:31 |只看该作者

linux c 里有没有对结构体实现类似php foreach功能的方法

不可能。
php是脚本语言,容易实现。
C是编译语言,一般的编译器编译完成后,结构体的定义就没有了,只剩下一些偏移量。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP