当结构具有void *指针时,如何赋值

时间:2014-01-07 02:12:56

标签: c

我正在尝试为具有 void *指针的变量赋值。以下是我理解的最佳作业。 (不起作用)

void set_fb_video ()
{

goldfish_lcd.dev.(atmel_lcdfb_info*)platform_data->default_monspecs->modedb->xres = 10;
};

以下是头文件

中定义的结构的一部分

标题文件

struct fb_videomode {
      ..
      u32 xres;
      ..
};

struct fb_monspecs {
      ..
      struct fb_videomode *modedb;
      ..
};

struct atmel_lcdfb_info;

struct atmel_lcdfb_info {
      ..
      struct fb_monspecs *default_monspecs;
      ..
};

struct device {
     ..
     void *platform_data;
     ..
};

struct platform_device {
      ..
      struct device dev;
      ..
};

C档

struct fb_videomode at91_tft_vga_modes[] = {
      ..
      .xres = 100,
      ..
};


struct fb_monspecs &at91fb_default_monspecs = {
      ..
      .modedb = at91_tft_vga_modes,
      ..
};

struct atmel_lcdfb_info ek_lcdc_data = {
      ..
      .default_monspecs = &at91fb_default_monspecs,
      ..
};

struct platform_device goldfish_lcd ={
      ..
      .dev = {
           ..
           .platform_data = &ek_lcdc_data,
          },
      ..
};

非常感谢任何建议。

提前谢谢

1 个答案:

答案 0 :(得分:2)

您的演员阵容位置不正确,并且您没有名为atmel_lcdfb_info的类型:

((struct atmel_lcdfb_info*)goldfish_lcd.dev.platform_data)->default_monspecs->modedb->xres = 10;