kprintf打印出大写字母

ome*_*ega 1 c unix linux operating-system

在我的操作系统代码的C程序中(在内核方面),我试图用来kprintf打印一个字符,但即使我这样做,也会打印它以及一些包含这四个小圆圈的块字符.

kprintf(&ch);
Run Code Online (Sandbox Code Playgroud)

有谁知道这里发生了什么?

Fat*_*ror 6

printf()系列函数取一个格式字符串,它告诉你要打印的内容.您不能直接打印字符,因为printf()(或kprintf()视情况而定)将继续读取,就好像它是一个字符串.你想要的东西:

kprintf("%c", ch);
Run Code Online (Sandbox Code Playgroud)

格式字符串告诉printf()我们期望的其他参数.在这种情况下,%c表示字符参数.