我面臨的問題是我想製作一個單一結構或容器,它將包含許多使用c語言的變量。 下面你可以看到我試圖使一個Color類型和一個函數更容易定義一個。將組變量轉換爲C中的結構體或容器
// Color Type For reuse
typedef struct Color
{
GLfloat R;
GLfloat G;
GLfloat B;
GLfloat A;
} Color;
// Color Setter to Make using the Color Type Easier
Color DefineColor (GLfloat R,GLfloat G,GLfloat B,GLfloat A)
{
Color NewColor; // Combine GLfloat parameters into a Color Type
NewColor.R = R;
NewColor.G = G;
NewColor.B = B;
NewColor.A = A;
return NewColor;
}
我試圖讓在是這樣的
typedef struct ColorPalette
{
Color Red = DefineColor(1,0,0,1);
Color Green = DefineColor(0,1,0,1);
Color Blue = DefineColor(0,0,1,1);
Color Violet = DefineColor(1,0,0.5,1);
// ... ect more colors and more colors
} ColorPalette;
因此,它可以作爲這樣的。
ColorPalette.Red;
或類似這樣的
Object.attribute.color = ColorPalette.Violet;
Object.Color.ColorPalette.Red;
找到一種方法,用這種方式組變量可以在遊戲編程,矩陣,數據整理和這樣的其他地方是非常有用的。
1)失去typedef修飾符。 2)每個顏色條目,在結構實例的初始聲明期間可以通過以下方式設置:struct ColorPalette myColorPalette = {{1,0,0,1},{0,1,0,1},...} ; – user3629249
你的問題是什麼?你已經展示過似乎正在做你正在做的事情的代碼。 –