將 fopen、fread 等檔案操作直接寫在全域範圍(函數外),編譯報錯:missing storage-class or type specifiers、syntax error。
C/C++ **全域範圍僅允許宣告**(變數定義、函數原型、類別定義),**不允許執行語句**(函數呼叫、迴圈、判斷、賦值運算)。
initTexture(),在 glutCreateWindow 後、glutMainLoop 前呼叫。GLubyte Mask[128];
void loadMask() {
FILE *fp = fopen("mask.bmp", "rb");
if (!fp) exit(0);
fseek(fp, -sizeof(Mask), SEEK_END);
fread(Mask, sizeof(Mask), 1, fp);
fclose(fp);
}
int main(int argc, char** argv) {
glutInit(&argc, argv);
// ...
loadMask(); // 在這裡呼叫
glutMainLoop();
return 0;
}