c - 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; \
}
\
每行末尾的符号是什么意思?
解决方案
好的,#define
在第一行看到了吗?这意味着我们正在谈论“ C PreProcessor ”
因此,它基本上是为某物定义一个“别名”(在本例中为 for _syscall3(type,name,atype,a,btype,b,ctype,c)
)。它将在源代码中找到它的任何地方用它的别名替换每次出现的已定义字符串。在编译器开始解析代码之前,编译器会读取长版本。
由于理论上预处理器当时处理一行/命令,但人类阅读长字符串很糟糕,我们必须将\
所有这些行“连接”成一行。现在我们可以真正阅读代码了!
所以,回答你的问题:这\
意味着这条线将在下面继续。
推荐阅读
- c++ - mpl列表的boost单元测试笛卡尔积
- python - Django:将 form.cleaned_data 传递给处理页面的视图,该页面使用 HttpResponseRedirect 重定向用户
- node.js - 访问不同的中间件数据
- javascript - 如果某些值匹配,如何替换数组的数据
- binance - Binance Api - 买卖功能 - python
- caching - 您如何比较现代 CPU 的 L1、L2 和 L3 的延迟缓存数据与访问 RAM 的延迟?
- r - 如何使用R读取和合并文件夹中的多个csv文件作为数据框,以便将新的csv文件作为新列添加到数据框中?
- javascript - 为什么我的按钮不能与 Ejs 和 Express 一起在 addEventListener 上工作?
- xamarin.ios - 使用 PDFView 从 Web 显示 PDF
- csv - pyspark 如何将带前导零的双引号整数(例如 000000038473)推断为字符串?