It will make no difference which one you chose if you're using a modern compiler[1]. Take for example the following C code.
#include <stdlib.h>
#include <stdio.h>
void foo(void) {
putchar('\n');
}
void bar(void) {
printf("\n");
}
When compiled with gcc -O1
(optimizations enabled), we get the following (identical) machine code in both foo
and bar
:
movl $10, %edi
popq %rbp
jmp _putchar ## TAILCALL
Both foo
and bar
end up calling putchar('\n')
. In other words, modern C compilers are smart enough to optimize printf
calls very efficiently. Just use whichever one you think is more clear and readable.
- I do not consider MS's
cl
to be a modern compiler.