It happened to me the following strange thing:
I had a function1_1() in file1.c called by another routine in file2.c
without it being declared extern inside file2.c (or any included header)
Strangely enough the linker gave no error
Plus I had another function still in file1.c function1_2() exactly the same as function1_1() with the only difference that this time I had
inside file2.cCode:extern function1_2();
If I a substitute (inside file2.c) the call of function1_1() with a call to function1_2() the program runs correctly
while if I substitute the call of function1_2() with a call to function1_1() the program has an incorrect behaviour and i think i tested some memory areas erroneously overwritten (don't remember but guess some stack variables of function1_1() )
Could you suggest an explanation??