一种 获得结构体成员的方法

来源:互联网 发布:猫会游泳吗 知乎 编辑:程序博客网 时间:2024/06/03 22:00

//a.c 

 

#include "stdio.h"

 

struct struc
{
char _in[20];
  int in;
char _cha[20];
  char cha;
char _strin[20];
  char strin[10];
};

void* find_string(struct struc *s, char *a)
{
  char *p=(char*)s;
 
  for(;p<(s+sizeof(struct struc));p++)
  {
    if(strcmp(p,a)==0)
      break;
  }
  return p+20;
}

int main(void)
{
  struct struc s={"in",1,"cha",'a',"strin","string"};
  //printf("\n s.in=%d s.cha=%c s.strin=%s \n", x_y(s,"in"), x_y(s,"cha"), x_y(s,"strin"));
printf("\n s.in=%d  \n",*((int*)find_string(&s,"in")));
printf("\n s.cha=%c  \n",*((char*)find_string(&s,"cha")));
printf("\n s.strin=%s  \n",((char*)find_string(&s,"strin")));
  return 0;
}

 

//这程序在ubuntu10中用gcc -o a.out a.c编译通过,并成功执行.

 

原创粉丝点击