We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
/* file1.c */ static void StaticFunction(void); void main(void) { StaticFunction(); } void StaticFunction(void) { /* something */ } /* file2.c */ void SomeFunction(void) { StaticFunction(); /* unresolved external symbol */ } In the example above StaticFunction was treated as static, although I changed my mind and removed the 'static' qualifier from its definition. But I forgot to change its declaration in the same file. Shouldn't the compiler have warned me? What does the ANSI C standard say about this?