개발중에 이상한 현상이 있더라구요. 예를 들어 아래와 같은 코드가 있을 때...
== a.c
#include
extern void test(int a, int b);
int main()
{
test(1, 2);
return 0;
}
== b.c
#include
void test(int a, int b, int c)
{
printf("%d %d %d\n", a, b, c);
return;
}
# gcc -o c a.c b.c
# c
1 2 -1251069960
링킹 과정중에 에러가 날꺼라 예상했는데 안 나네요. obj 파일은 a.c 파일에서 프로토타입이 맞으니
생성된다지만 링킹 과정중에 정의된 함수와 파라메터 수, 타입은 체크를 안하는듯 하네요.
좀 더 테스트 해보니 g++은 에러가 나네요^^