C语言 续行符 ‘\‘

在写代码的时候如果内容太长一行容纳不下就需要使用续行符 '\' 了。

1.宏定义中使用

续行符最常见的用法是在宏定义中,由于宏定义"#define"只对当行生效,在有些场景为了阅读的美观和代码的逻辑性等难免需要换行,这时候就可以使用续行符'\'实现。

#define MYPRINTF(x) printf("%s\n", x);

#define MYPRINTF(x) printf("%s\n",\
        x);

上面两种写法是一样的,需要注意的是'\'后面要紧接换行,不可以写其他内容。

2.字符串太长时使用

某些场景下的字符串过长或者有特殊的阅读表达需求时需要将一个长字符串分行写

int main(void)
{
    char *string1 = "hello world!";
    char *string2 = "hello \
    world";
    char *string3 = "hello "\
                    "world!";

    printf("%s\n%s\n%s\n", string1, string2, string3);
}

输出:

hello world!
hello     world
hello world!

注意string2和string3的不同,根据需要我们大多数情况使用string3的格式。

担心使用续行符字符串存储在内存中不连续的问题作者这里帮大家测试了:

int main(void)
{
    char *string1 = "hello world!";
    char *string2 = "hello "\
                    "world!";
    char *string3 = "hello "\
                    "friend!";

    printf("%s\n%s\n%s\n", string1, string2, string3);

    char *p1 = string1;
    char *p2 = string2;
    char *p3 = string3;

    for (int i = 0; i < 10;i++)
    {
        printf("%p ", p1++);
    }
    printf("\n");
    for (int i = 0; i < 10;i++)
    {
        printf("%p ", p2++);
    }
    printf("\n");
    for (int i = 0; i < 10;i++)
    {
        printf("%p ", p3++);
    }
}

输出:

hello world!
hello world!
hello friend!
0000000000404000 0000000000404001 0000000000404002 0000000000404003 0000000000404004 0000000000404005 0000000000404006 0000000000404007 0000000000404008 0000000000404009
0000000000404000 0000000000404001 0000000000404002 0000000000404003 0000000000404004 0000000000404005 0000000000404006 0000000000404007 0000000000404008 0000000000404009
000000000040400D 000000000040400E 000000000040400F 0000000000404010 0000000000404011 0000000000404012 0000000000404013 0000000000404014 0000000000404015 0000000000404016

可以看到'\'不会影响字符串的存储,和写在同一行没有区别。

3.可执行语句换行

这个其实比较鸡肋,因为代码太长我们直接换行也是可以的,使用续行符再换行多此一举 ,使用就不举例细说了。

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值