初始化大量结构体

时间:2014-01-20 21:18:03

标签: c

我需要以某种方式存储关于某些分辨率的大量信息,我想为此制作一个结构。

struct resolution{
    const char* name;
    const int width;
    const int height;
};

问题是我需要在一些结构数组中存储很多分辨率,但是无法正常工作(需要将'126'的东西存储到'手动',所以没有循环或那种东西。< / p>

谢谢!

1 个答案:

答案 0 :(得分:4)

您是否尝试过初始化程序?

struct resolution {
  const char * name ;
  const int width ;
  const int height ;
}
  mylist[] = 
  {
    { "cga", 320, 240 },
    { "vga", 640, 480 },
    { "xga", 1024, 768 },
  } ;

作为奖励,你可以在最后存储一个标记,这样任何读取这些标记的循环都可以在值上停止,而不是跟踪列表的长度:使用类似的东西:

{ NULL, 0, 0 }

因此,您可以检查nameNULL还是大小,如下所示:

const struct resolution *  find_bysize( int w, int h )
{
  struct resolution * searchptr ;

  for (searchptr= mylist ; ( searchptr-> name ) ; searchptr ++ )
    { if (( searchptr-> width == w ) && (searchptr-> height == h )) { return searchptr ; } }
  return NULL ;  // not found
}