标准C函数名称

时间:2015-07-20 21:26:05

标签: c

标准C函数的缩写方式是否有任何理由?例如,malloc是“内存分配”的缩写。 Sprintf是'字符串打印格式'。这两个名字都不是很擅长告诉你这个功能究竟做了什么。直到最近,当我不得不教授新实习生这些功能时,我从未想到这些缩写功能名称是多么可怕。

当开发语言时,是否有任何理由选择malloc()而不是memAllocate()或类似的东西?我最好的猜测是它们更像UNIX命令,但这感觉不是正确答案。

3 个答案:

答案 0 :(得分:4)

查看http://publications.gbdirect.co.uk/c_book/chapter2/keywords_and_identifiers.html -

  

问题是,从来没有任何保证超过一个   比较名称时将检查一定数量的字符   为了平等 - 在旧C中,这是8个字符,在标准C中   已改为31。

基本上,在过去(很长一段时间)你只能依靠函数名中唯一性的前八个字符。所以,你最终会得到一堆核心功能的短名称。

答案 1 :(得分:2)

正如Neal StephensonIn the Beginning Was the Command Line中写的那样,

  

注意痴迷使用缩写和避免使用大写字母;这是一个由人们发明的系统,重复的压力障碍是黑肺对矿工的影响。长长的名字被磨成了三个字母的小块,就像河边平滑的石头一样。

Unix的第一个版本和他的第一个C编译器是使用ed编写的。不是vi,不是emacs,而是ed。有一点,当您发明全新的东西并首次编写时,减少击键次数确实会增加您每天可以写入的SLOC数量。

答案 2 :(得分:1)

历史上的理由当然是历史上C标准只需要实现来区分外部标识符名称的最初6个字符。该补贴在C99中被删除。但是,C语言的用户通常会:

  • 旨在编写源代码,使其适合合理数量的列,通常为80或更少,这对于长标识符名称来说很难。

  • 使用键盘输入标识符名称,这很困难,标识符较长时会浪费时间。

  • 倾向于在源代码中偏好高信息密度和信噪比。