Kai*_*ash -2 c case-insensitive
C 关键字由 C 编译器预定义,在 C89 中为小写。既然只有 32 个,为什么不能将它们定义为不区分大小写?
因为 C 区分大小写,而这些是关键字。让它们不区分大小写会使编译器变慢,但真正的原因是它是如何定义的。
在 60 年代有很多关于字母大小写的实验。有一段时间,BCPL 保留小写单词作为系统关键字,以区别于用户名,用户名必须是大写的,或者单个字母的小写。但是后来他们切换到大写(后来又改回小写),是否区分大小写取决于编译器。FORTRAN/Fortran 也是如此,它通常根本不区分大小写,但有时以极其复杂的方式。
因此,当我说“它会使编译器变慢”时,我的意思并不是“因为它是一种较旧的语言,而且处理器时间更宝贵”。大多数现代语言都区分大小写。许多较旧的语言对其历史和实现具有不同程度的区分大小写。但从根本上说,区分大小写对计算机来说更简单。这就是大多数 Unix 的设计方式,并且 C(最初是 B)被构建为 Unix 的系统语言。但同样,这只是Unix 中的一个特定设计决定,而不是一些“必须是这样”的深层选择。
但所有这些都只是在谈论并反驳答案。答案是:因为这就是 C 的定义方式。