C语言遍历结构体

C语言 码拜 8年前 (2016-04-01) 7614次浏览
假设结构体为:
typedef struct
{
unsigned char ucType;
char cProgramID[32];
char cRegionGroupID[32];
unsigned char ucPlayStatus;
unsigned char ucMonitorStatus;
}InsertProgramQueryCondition;
求一段用循环遍历该结构体的c代码。
解决方案

6

你是要遍历结构体还是要遍历放了很多结构体变量的一个容器?

8

本人猜,题主是要这样遍历结构体内的每个字节吧

InsertProgramQueryCondition ST
char *p = (char*)(&St);
for (int i =0; i < sizeof(InsertProgramQueryCondition); i++)
{
//这里 *p 就是要的内容
p++;
}

3

应该说对于结构体内部进行循环遍历不易做到,使用一些变通的方法或许能够做到,但最主要的是这样做毫无意义。

3

C,C++ 没有直接的方法
按照 成员变量的类型,通过循环访问他。
你不是要做调试程序吧
那是对每个类型的类型信息,做了记录和封装
所以,才能一一看到。

3

引用:
Quote: 引用:

你是要遍历结构体还是要遍历放了很多结构体变量的一个容器?

本人就是想给结构体中的每一个变量赋值,但是想用循环来遍历结构体,不然依次赋值感觉代码很冗余

你有不止一种类型的变量,怎么样用循环赋值呢?
再说了,即使可以做到,一个结构体又能有多少变量。何必把简单的问题复杂化。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C语言遍历结构体
喜欢 (0)
[1034331897@qq.com]
分享 (0)