这样的字符串常量,在 C 中能编译通过吗?

hiflower 2007-04-02 01:32:44
const char *s1 ="\x1FFirst....";
const char *s2 ="\x20Fifth....";

编译警告:字符值超出范围。
编译器把 First 和 Fifth的首字符也当作16进制 F 的转义字符了。

像这样的情况,该怎么定义才对呢?

...全文
183 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hiflower 2007-04-03
  • 打赏
  • 举报
回复
谢谢各位。
FFSB(...) 的达到了我的目的,要多加两个引号,将数字与字母分开。

我真搞不懂为什么 8 进制的转义是最长3位,而16进制转义就不限制长度!
theLibra12 2007-04-03
  • 打赏
  • 举报
回复
const char *s1 ="\x1F\First....";
const char *s2 ="\x20\Fifth....";
huzhangyou 2007-04-03
  • 打赏
  • 举报
回复
cc可能理解错误了
嘿嘿
关注一下
其实你不一定要这么处理的
cheneyhehe 2007-04-02
  • 打赏
  • 举报
回复
分开来,不是一样的可以吗?那里有问题?
constantine 2007-04-02
  • 打赏
  • 举报
回复
我理解你要的东西跟1,2楼都不一样,不知道谁错了
constantine 2007-04-02
  • 打赏
  • 举报
回复
const char *s1 ="\x1FFirst....";
0x1F超过ascii了。我不知道你这样做有什么。
const char *s2 ="\x20Fifth....";
这个简单const char *s2 ="\x20\x46\x69\x66\x74\x68....";就可以了
FFSB 2007-04-02
  • 打赏
  • 举报
回复
const char *s1 ="\x1F""First....";
const char *s2 ="\x20""Fifth....";
//这样也可以
ccrun.com 2007-04-02
  • 打赏
  • 举报
回复
const char *s1 ="\x1F\First....";
const char *s2 ="\x20\Fifth....";

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧