Resolving the "a label can only be part of a statement..." error
The “a label can only be part of a statement and a declaration is not a statement” error occurs in C when it encounters a declaration immediately after a label.
The C language standard only allows statements to follow a label. The language does not group declarations in the same category as statements.
Code
Consider the following code snippet that throws this error:
Note how str2 is declared immediately after the Here: label on line . The solution to this error is to add a semi-colon after the label. The compiler will translate it as a blank statement and not throw the error. The following code snippet implements this fix:
The error can also occur when using switch statements in C, as the language treats cases similar to labels. Consider the following error scenario:
The solution is the same as before; a semi-colon needs to be added after the case 'a' statement on line . Alternatively, the entire case can be enclosed in curly braces to circumvent the error. The following code snippet implements both ways of fixing this error:
Free Resources