我正在创建一个修改后的 printf 实现,但我不确定这些问题的答案。
零作为空字符串工作吗?(
printf("%s", 0)
允许吗?)我猜不是,因为 0 是一个
int
. 但是这会提示这个问题:NULL
可以作为空字符串工作吗?(printf("%s", NULL)
允许吗?)从逻辑上讲,我认为应该是的,因为
NULL
暗示了一个指针;但是很多实现似乎都有#define NULL 0
,所以我觉得在实践中可能没有。哪个是对的?指针类型是否必须指向
char
?(printf("%s", (void const *)"")
允许吗?)我的猜测是类型无关紧要,但我不确定。