GCC는 1문자를 printf() 시 assembly어의 putchar을 call한다.
GCC는 1문자이상과 carrige-return(\n)을 printf()시 assembly어의 puts를 call한다.
GCC는 1문자이상을 puts()시 assembly어의 puts를 call한다.
GCC는 2문자이상을 printf시 assembly어의 printf를 call한다.
~cpp
.LC0: .string "1"
.LC1: .string "2"
.LC2: .string "3"
.LC3: .string "45"
// printf("1\n");
subl $12, %esp
pushl $.LC0
call puts
addl $16, %esp
// puts("2");
subl $12, %esp
pushl $.LC1
call puts
addl $16, %esp
// printf("3");
subl $12, %esp
pushl $51
call putchar
addl $16, %esp
// printf("45");
subl $12, %esp
pushl $.LC2
call printf
addl $16, %esp