In one 'c' file I define the following function:
void fnTemp(int jj, int kk);
void fnTemp(int jj, int kk)
{
...do some stuff...
}
In a different 'c' file I have the following:
extern void fnTemp(int jj);
void fnTryIt(void)
fnTemp(3);
This will link without any errors. How do I get the linker to tell me that I have two definitions for fnTemp()?
I know that I could put the declaration for fnTemp() in a .h file and include the .h file in both .c files which will then trigger a compiler error. But I have an instance where that can cause other issues.
Thank you for any help.
The C compiler and the linker cannot know that you call the function with wrong parameters. That's the nature of C.
You might switch to C++ (even if you do not use the C++ features). C++ "decorates" the functions, so it will have a function __vfnTempII in one file and you call __vfnTempI in the other. And the linker will complain.