This warning is triggered multiple times in my code by the same declaration, which reads :
// Spreadsheet structure
typedef struct SPREADSHEET
{
int ID; // ID of the spreadsheet
UINT nLines; // Number of lines
void CopyFrom(const SPREADSHEET* src)
{
ID = src->ID;
nLines = src->nLines;
}
};
I don't want to just turn off that warning,
but rather change the code so that the warning doesn't come up !
NOTE : I don't want to declare any variables here (it's a header file), only define what the struct 'SPREADSHEET' should include...
Just remove "
typedef
". You declare a new struct and thetypedef
keyword isn't used for that. You would usetypedef
to define a new name for an existing type, like this:You need to add some identifier before the terminating
;
, e.g.:Delete
typedef
. It's the C way of declaring structs, C++ does it automatically for you.My interpretation of this warning is that the compiler is indicating that the
typedef
keyword is unnecessary because a variable is not being declared. and therefore if the intention of the code is to simply declare astruct
thetypedef
is superfluous.Yes, the
BLAH
after the closing brace is important to make thetypedef
a valid one. You can remove theSPREADSHEET
from the present place and keep it in between the}
and the;
.