implicit conversion will not happen as the code for main was generated using the signature on top declared. answer lies in disassembly.
also output i got is
"Hello World !!
1073741824
1065353216"
which is diif from yours. Implicit conversion happens at compile time. Linking is not the time for linkers to add implicit conversion. both files are compiled with 2 diff signatures
and they are compiled in their own domains not requiring any conversion.
Dump of assembler code for function main:
0x0000000000400504 <+0>: push %rbp
0x0000000000400505 <+1>: mov %rsp,%rbp
0x0000000000400508 <+4>: sub $0x10,%rsp
0x000000000040050c <+8>: movl $0x0,-0x8(%rbp)
0x0000000000400513 <+15>: mov $0x3f800000,%eax
0x0000000000400518 <+20>: mov %eax,-0xc(%rbp)
0x000000000040051b <+23>: lea -0xc(%rbp),%rax
0x000000000040051f <+27>: mov (%rax),%eax
0x0000000000400521 <+29>: mov %eax,-0x4(%rbp)
0x0000000000400524 <+32>: mov $0x0,%eax
0x0000000000400529 <+37>: callq 0x400570 <print>
0x000000000040052e <+42>: mov $0x5,%edi
0x0000000000400533 <+47>: callq 0x400580 <show>
0x0000000000400538 <+52>: mov %eax,-0x8(%rbp)
0x000000000040053b <+55>: mov $0x400698,%eax
0x0000000000400540 <+60>: mov -0x8(%rbp),%edx
0x0000000000400543 <+63>: mov %edx,%esi
0x0000000000400545 <+65>: mov %rax,%rdi
0x0000000000400548 <+68>: mov $0x0,%eax
0x000000000040054d <+73>: callq 0x4003f0 <printf@plt>
0x0000000000400552 <+78>: mov $0x40069b,%eax
0x0000000000400557 <+83>: mov -0x4(%rbp),%edx
0x000000000040055a <+86>: mov %edx,%esi
0x000000000040055c <+88>: mov %rax,%rdi
0x000000000040055f <+91>: mov $0x0,%eax
0x0000000000400564 <+96>: callq 0x4003f0 <printf@plt>
0x0000000000400569 <+101>: mov $0x0,%eax
0x000000000040056e <+106>: leaveq
0x000000000040056f <+107>: retq
End of assembler dump.
(gdb) disass show
Dump of assembler code for function show:
0x0000000000400580 <+0>: push %rbp
0x0000000000400581 <+1>: mov %rsp,%rbp
0x0000000000400584 <+4>: mov $0x40000000,%eax
0x0000000000400589 <+9>: mov %eax,-0x4(%rbp)
0x000000000040058c <+12>: movss -0x4(%rbp),%xmm0
0x0000000000400591 <+17>: leaveq
0x0000000000400592 <+18>: retq