首页 > 解决方案 > C语言行尾的符号\是什么意思?

问题描述

我正在阅读 Linux 0.11 的源代码,我在以下代码中找到了这段代码unistd.h

#define _syscall3(type,name,atype,a,btype,b,ctype,c) \
type name(atype a,btype b,ctype c) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
    : "=a" (__res) \
    : "0" (__NR_##name),"b" ((long)(a)),"c" ((long)(b)),"d" ((long)(c))); \
if (__res>=0) \
    return (type) __res; \
errno=-__res; \
return -1; \
}

\每行末尾的符号是什么意思?

标签: c

解决方案


好的,#define在第一行看到了吗?这意味着我们正在谈论“ C PreProcessor

因此,它基本上是为某物定义一个“别名”(在本例中为 for _syscall3(type,name,atype,a,btype,b,ctype,c))。它将在源代码中找到它的任何地方用它的别名替换每次出现的已定义字符串。在编译器开始解析代码之前,编译器会读取版本。

由于理论上预处理器当时处理一行/命令,但人类阅读长字符串很糟糕,我们必须将\所有这些行“连接”成一行。现在我们可以真正阅读代码了!

所以,回答你的问题:\意味着这条线将在下面继续。


推荐阅读