I have one file in which I use "int16_t x", when I declared it in other file, by mistake I have declared "extern int8_t x". i.e int8_t is used instead of int16_t.
But compiler do not generate warning for this. Why. Is there any method for it or it has to be taken care by the programmer only.
Indeed there is.
But there is no requirement for them to be so, and many (most?) aren't - clearly, "the" compiler in question here is one such.
Quote: But there is no requirement for them to be so, and many (most?) aren't
I remember reading an article from Microsoft on their (then proposed) compiler technologies which spoke about doing this very thing. I gave up at the .net system, maybe they implemented such things in that.