我正在寫一個函數,該函數用紋理和動畫數據解析文件並將其加載到我聲明的全局結構中。我在特定的行上得到編譯器警告「從不兼容的指針類型賦值」。這是很多代碼,所以我只想在這裏發佈重要的部分。「從不兼容的指針類型賦值」警告
首先,我有我的動畫例程結構數據類型,如下所示:
typedef struct {
unsigned int frames;
GLuint *tex;
float *time;
struct animation *next;
} animation;
正如你所看到的,在結構中的最後一個變量是一個指向另一個動畫時,默認使用的動畫完成。
這裏是加載功能的聲明:
void LoadTexturePalette(GLuint **texture, animation **anim, const char *filename)
功能載荷信息轉換成動畫的陣列,因此雙指針。
在加載每個動畫的最後,從文件中提取一個整數,指出「下一個」指針將指向哪個動畫(加載的動畫中除外)。
fread(tmp, 1, 4, file);
(*anim)[i].next = &((*anim)[*tmp]);
在最後一行,我得到編譯器警告。我還沒有使用這個變量,所以我不知道這個警告是否是一個問題,但是我覺得我的語法或者我的方法可能在設置該變量時不正確。
'(*阿尼姆)[I] .next'是一個指向一個'結構動畫'; '&((* anim)[* tmp])'是一個'animation'的地址,一個沒有標籤的'struct'。 – pmg 2012-01-06 10:04:23