在C中创建具有三个属性

时间:2016-03-05 18:49:02

标签: c arrays struct

大家好我想要创建的是C中的一些代码,它允许我分别存储R,G,B值(这将来自图像),我做了一些研究并假设使用结构数组来是最好的方式,但仍然不确定。然后,我希望从这些结构中访问值以执行一些简单的计算。我遇到的问题是开始访问结构/数组。我发现概念部分非常困难,如果有人可以使用一个简单的例子,它不必与我的任务相关,但是对一个结构的一些示例代码3属性将有助于显示如何访问这些值。我也想了解如何使用值加载结构。任何提示或帮助将不胜感激。

2 个答案:

答案 0 :(得分:-1)

结构的定义可以是:

  struct{
  unsigned char r,g,b ;
  /* unsigned char holds values 0…255 for 24 bit color */
  }rgb;

声明变量:

struct rgb cyan;

分配值:

cyan.r=0;
cyan.g=255;
cyan.b=255;

要打印:

printf("%03d",(cyan.r),… and so on…

1)你可能想要使用指针。

2)使用 typedef 使语法更紧凑。

答案 1 :(得分:-2)

您好您可以实现三维数组来存储RGB值,然后执行所需的操作。 虚拟代码看起来像这样:

    #define TOTAL_NO_OF_PIXEL 1080  //For example total 1080 no of pixels are there
    int RGBcolor[3][TOTAL_NO_OF_PIXEL];
    int main()
    {
        for(int cnt=0;cnt<TOTAL_NO_OF_PIXEL;cnt++)
        {
            RGBcolor[0][cnt] = RED;
            RGBcolor[1][cnt] = GREEN;
            RGBcolor[2][cnt] = BLUE;
        }    
        return 0;
    }

希望这有助于。

相关问题