The C language is created with the intent purpose to be as portable as possible. As such, it is made in such a way to be as close to the operating system as possible and its capabilities are very simple.

The C philosophy is to have a very minimal set of language constructs and rather an emphasis on run-time libraries to meet specific cases

C is not a strongly typed language like Pascal, if you need to check specific types of array subscripts, argument types, etc, then the a Lint will do that for you.