C/C++ Programmer's Guide (G06.27+, H06.08+, J06.03+)

Cause
The context of the expression required an operand to be either arithmetic or a pointer. This error
can occur for the logical OR and logical AND operators.
28
missing operand
Cause
During expression evaluation, the compiler encountered the end of an expression but not enough
operands were available for evaluation. This error can occur if you improperly specified a binary
operation.
29
invalid pointer operation
Cause
You specified an operation—such as an arithmetic operation other than addition or
subtraction—that was invalid for pointer operands.
30
pointers do not point to same type of object
Cause
In an assignment statement defining a value for a pointer object, the expression on the right side
of the assignment operator did not evaluate to a pointer of the exact same type as the pointer
object being assigned; that is, it did not point to the same type of object. This warning also
occurs if you assign a pointer of any type to an arithmetic object. Note that the same message
becomes a fatal error if generated for an initializer expression.
31
integral operand required
Cause
The context of an expression required an operand to be integral; that is, one of the integer types
(char, int, and so on).
32
invalid conversion specified
Cause
The expression specifying the type name for a cast (conversion) operation or a sizeof expression
was invalid.
33
cannot initialize auto aggregate
Cause
You attempted to attach an initializer expression to a structure, union, or array that was declared
auto. These initializations are not allowed by the language.
34
invalid initializer expression
Cause
The expression used to initialize an object was invalid. This error can occur for a variety of
reasons, including failure to separate elements in an initializer list with commas or specification
Types of Compiler Messages 333