It is said that C's type system is unsound, which means that it has "false negatives", it tells the programmer everything is fine, but then the code fails at runtime. for example, "the program can reach a state where an expression evaluates to a value that doesn't match the expression's static type" I learned it from the lecture notes of the course CSE341 in university of Washington which are available online. It says: with respect to some thing X we wish to prevent. For example, X could be, ...