#include <stdio.h>

int puts(const char *ch)
{
printf("%s n",ch);
return 77;
}

void main()
{
int i=puts("hi");
printf("%d",i);
}

stdio.h에 있는 puts와 같게 선언하고  내용만 바꿔서
호출하니깐 호출 되더군요...
(이게 원래 가능한가?)
하지만 역시 헤더/소스로 분리 할경우 에러를 호출합니다.

아무래도 링커가 장님같아 보이는데....