C/C++转义符:\x

什么是转义符

在C语言中,转义符用于将一些特殊字符表示为单个字符,常用的转义符有:

  • \\:反斜杠符号
  • \':单引号
  • \":双引号
  • \a:响铃符号(ASCII 值为 7)
  • \b:退格符号(ASCII 值为 8)
  • \f:换页符号(ASCII 值为 12)
  • \n:换行符号(ASCII 值为 10)
  • \r:回车符号(ASCII 值为 13)
  • \t:水平制表符号(ASCII 值为 9)
  • \v:垂直制表符号(ASCII 值为 11)

如下图:
在这里插入图片描述
可以在字符串中使用这些转义符,表示相应的特殊字符,例如用\n表示一个换行符。

从C90 开始,C提供了第三种选择,即使用十六进制形式表示字符常量。
在这种形式中,反斜机后跟个x或X,再加上1到3位十六进制数字。
例如Ctr+P 字符的十六进制ASCI码值为 10(相当于十进制中的 16),它可以表示为"\x10"或"\X010。

使用"\x"定义char数组

在宏定义中,\x 通常用于表示一个十六进制字符。例如,\x12 表示十六进制数 0x12

在这个例子中,KEY 被定义为一个包含16个字节的字符数组,每个字节都用16进制表示。

#define KEY  "\x12\x34\x56\x78\x90\x12\x34\x56\x12\x34\x56\x78\x90\x12\x34\x56"

这个宏定义了一个长度为16的字符串常量,表示一个16字节的密钥。这是一个十六进制序列,每两个十六进制数字表示一个字节。

解释每个字节:

  • \x12: 一个字节,十六进制表示为0x12。
  • \x34: 一个字节,十六进制表示为0x34。
  • 以此类推。

宏定义中的’’

在C语言的宏定义中,反斜杠(\)通常用作宏定义的行继续符。它表示宏定义在下一行继续。这是为了使宏定义更易读,尤其是对于较长的宏而言。

例如,有一个较长的宏定义,可以使用反斜杠将它分成多行:

#define MY_MACRO(arg1, arg2) \
    do { \
        // 宏的实现代码 \
        printf("Argument 1: %d\n", arg1); \
        printf("Argument 2: %d\n", arg2); \
    } while (0)

例子中,反斜杠告诉编译器这个宏定义在下一行继续。这样做有助于提高代码的可读性,特别是对于复杂的宏定义,以及需要跨越多行的情况。

反斜杠的最后一行不能有其他字符,包括空格。例子中,while (0)
就是一个常见的用法,它确保在使用这个宏时,看起来像一个语句而不是一个表达式。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林树杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值