我需要以某种方式存储关于某些分辨率的大量信息,我想为此制作一个结构。
struct resolution{
const char* name;
const int width;
const int height;
};
问题是我需要在一些结构数组中存储很多分辨率,但是无法正常工作(需要将'126'的东西存储到'手动',所以没有循环或那种东西。< / p>
谢谢!
答案 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 }
因此,您可以检查name
是NULL
还是大小,如下所示:
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
}