User forums > Using Code::Blocks
Strange error when using a custom struct
(1/1)
Arenth:
--- Code: ---
struct GLF_Header {
unsigned short int charCount;
unsigned long int ColorKey;
};
struct GLFEntry {
unsigned char charCode;
unsigned long int xPos;
unsigned long int yPos;
unsigned long int Width;
unsigned long int Height;
};
GLF_Header GLFH;
GLF_Entry GLFE[256];
--- End code ---
Well thats my code, and these are my errors
--- Quote ---
GFX_Routines.c:20: parse error before "GLFH"
GFX_Routines.c:20: warning: data definition has no type or storage class
GFX_Routines.c:21: parse error before "GLFE"
GFX_Routines.c:21: warning: data definition has no type or storage class
--- End quote ---
Now my problem is, is to me, this code all looks completely ok, but for some reason, I get these errors, any help would be great.
EricBurnett:
Could it be that the "unsigned short int" and such aren't recognised properly? You could try your code with just "unsigned short" and see what happens.
mandrav:
First, you have a typo (maybe a copy-paste error, but nonetheless):
--- Code: ---struct GLFEntry { .. }
GLF_Entry GLFE[256];
--- End code ---
My guess is that this file has a .c extension, which makes the compiler treat it as a C file, not C++. This, in turn, means that you must program "the C way", i.e.:
--- Code: ---struct GLF_Header { ... }
struct GLF_Entry { ... }
struct GLF_Header GLFH; // <-- notice the 'struct' keyword
struct GLF_Entry GLFE[256]; // <-- here too
--- End code ---
or if you don't want to use the 'struct' keyword:
--- Code: ---struct GLF_Header { ... }
typedef struct GLF_Header GLF_Header; // <-- 'typedef' it
struct GLF_Entry { ... }
typedef struct GLF_Entry GLF_Entry; // <-- 'typedef' it
// since the structs are "typedef'd" now, you 're OK with this
GLF_Header GLFH;
GLF_Entry GLFE[256];
--- End code ---
Your other option, is to rename the file to .cpp so the compiler treats it as a C++ file...
Yiannis.
Navigation
[0] Message Index
Go to full version