gpt4 book ai didi

c - 使用八进制字符给出警告 : multi-character character constant

转载 作者:太空狗 更新时间:2023-10-29 15:49:56 27 4
gpt4 key购买 nike

遵循 this question 中的逻辑,以下代码应该有效:

#include <stdio.h>

int main(){
printf("%c", '\0101');
return 0;
}

然而,it gives the following error :

main.c: In function 'main':
main.c:5:18: warning: multi-character character constant [-Wmultichar]
printf("%c", '\0101');
^~~~~~~
exit status -1

我不确定为什么它是一个多字符常量。我认为这些单引号内应该只有一个字符常量(八进制 101 = 十进制 65 = 'A')。为什么会有多个字符?为什么八进制符号不起作用?

最佳答案

八进制 char 符号应该是 \abc 的形式,其中 abc,是八进制数字(即在07之间)。

您有四位数字,因此编译器会将其解释为 \010(maximal munch)后跟 1

这是一个多字符常量,很像'12'。像 \abc,它有一个 int 类型,但值是实现定义的,到 c 的转换在printf 将具有实现定义的行为。您乐于助人的编译器会提醒您这一点,并且使用正确的术语也就不足为奇了。

你的意思是写'\101'吗?如果你这样做了,而你真正想要的是大写字母 A,那么为可移植的 C 编写 'A'

关于c - 使用八进制字符给出警告 : multi-character character constant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50990292/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com