旧 C 文件中的单个“#”

旧 C 文件中的单个“#”

#我开始研究旧的 C 代码(Unix v6),我想知道文件开头的单个的目的是什么.c。例如来自https://github.com/lsahn-gh/unix-v6/blob/master/sys%2Fken%2Falloc.c

#
/*
 */

#include "../param.h"
#include "../systm.h"
#include "../filsys.h"
...

答案1

斯蒂芬·基特在 Retrocomputing Stack Exchange 上回答:

丹尼斯·M·里奇的C语言的发展论文给出了这样的背景:

[...] 预处理器最初被认为是语言本身的可选附件。事实上,多年来,除非源程序在开头包含特殊信号,否则它甚至不会被调用。

[...]“开头的特殊信号”是#第一个字符。

答案2

这是一个无操作。从标准之一(定义没有改变):

3.8.7 空指令

语义学

表单的预处理指令

    #  new-line

没有影响。

至于目的,之前已经问过,查一下例如。当时它可能与可读性有关,因为带有 # 的行仅在源代码中可见,预处理器根本不输出任何内容。但这只是猜测,实际上它一直是而且仍然是一个空操作。

答案3

相关内容