C言語は、過去の言語仕様との互換性のため、変数宣言や関数宣言で省略できるところで型を省略するとint型になる、というルールがあります。変数宣言だけでなく関数宣言も、なんです。このため関数宣言で
fnc1()
{
printf("hello,world\n");
}
のような記述が合った場合、
int fnc1(...)
{
printf("hello,world\n");
}
と同じことになります。決して void fnc() と同じわけでないので、この場合、関数が値を返さなきゃいけないのにreturnがないというような警告メッセージがだされるでしょう。