这两天在用 gcc 编译一个自定义的 printf() 的函数时,里面特意没有包含库文件。开始时 printf 工作的还不错,什么格式化字符串都能正确地输出。但是当 printf() 里面只有一个%c的格式符时,像这样
printf("%c",'c');
在链接时,gcc就会报错:
tty.c:(.text+0xe3): undefined reference to `putchar'
没有找到 putchar() ????? 我明明就没有用到这个东西啊。难道gcc编译时会把 只有一个单字符输出的printf() 优化成 putchar() ???? 我凌乱了~~~我的猜想是否正确?谁知道这个问题的关键所在呢?