Weak typing
<programming> Strict enforcement of
type rules but with well-defined exceptions or an explicit type-violation mechanism.
Weak typing is "friendlier" to the programmer than
strong typing, but catches fewer errors at compile time.
C and
C++ are weakly typed, as they automatically coerce many types e.g. ints and floats.
E.g.
int a = 5; float b = a;
They also allow ignore typedefs for the purposes of type comparison; for example the following is allowed, which would probably be disallowed in a strongly typed language:
typedef int Date;
/* Type to represent a date */ Date a = 12345; int b = a;
/* What does the coder intend? */
C++ is stricter than C in its handling of enumerated types:
enum animal CAT=0,DOG=2,ANT=3; enum animal a = CAT;
/* NB The enum is optional in C++ */ enum animal b = 1;
/* This is a warning or error in C++ */