关于程序员:C-语言的标准是什么

6次阅读

共计 1767 个字符,预计需要花费 5 分钟才能阅读完成。

本文首发自「慕课网」,想理解更多 IT 干货内容,程序员圈内热闻,欢送关注!

作者 | 慕课网精英讲师 张磊

什么是规范?规范是对重复性事物和概念所做的对立规定,他以科学技术和实践经验的联合成绩为根底,经无关方面协商一致,由主管机构批准,以特定模式公布作为独特恪守的准则和根据。

在这个规范概念大行其道的明天,如果大家在生活中略微留神一下,其实能够很容易发现,咱们生存在一个标准化的世界里,每个产品的外包装或者标签上都会注明相应的执行规范。规范贯通着咱们的衣食住行。总而言之,规范无处不在。

当然规范具备行业性与地域性。每个国家根本都有本人的规范,这些规范有些是本人独立发明的,但更多的,为了与国内上大部分规范兼容,基本上会应用国内上一些通用的规范,只是改一下名字就能够了。

作为软件行业中的老大哥级人物。C 语言也有本人的规范,而且是国际标准。

如果大家遵循同一个规范,那么就会防止一致的产生,避免出现很多不必要的麻烦和困扰。依照这统一标准就不会呈现不兼容的问题。

咱们先来看下 C 语言规范的倒退历史:

  1. C 语言规范历史
    序号

别称

全称

1

C18

ISO/IEC 9899:2018

2

C11

ISO/IEC 9899:2011

3

C99

ISO/IEC 9899:1999

4

C95

ISO/IEC 9899:1990/AMD 1:1995

5

C90

ISO/IEC 9899:1990

6

C89

ANSI X3.159-1989

最新执行的 C 语言的国际标准是序号为 1 的 C18 规范(ISO/IEC 9899:2018 (C18)),这个规范是 2018 年通过的 C 语言国际标准。那么 C 语言的规范中都规定了哪些内容呢?上面咱们一起来看下:

  1. C 语言规范内容
    这里我将国际标准化组织最新的 C 语言的规范的一部分内容放在这里,因为所有的规范都不是收费提供的,有趣味的同学能够购买看一下全文。

那么这些规范外面都有哪些内容呢?

因为我并没有购买 C 语言的最新规范,所以我找了一点来自于 C 语言规范中形容。上面这段话就通过文字的形容,定义了无关 main 函数的细节:

The function called at program startup is named main. The implementation
declares no prototype for this function. It shall be defined with a return
type of int and with no parameters:

   int main(void) {/* ... */}

or with two parameters (referred to here as argc and argv, though any names
may be used, as they are local to the function in which they are declared):

   int main(int argc, char *argv[]) {/* ... */}

or equivalent;10) or in some other implementation-defined manner.
代码块 12345678
这里写明了 main 函数是做什么的,应该怎么写,蕴含了什么参数以及返回值等。正确的 main 函数的正确的书写办法应该是 int main(void) {// } 或者 int main(int argc, char argv[]) {// }。而不是咱们国内随处能够看到的 void main(void) {//} 或者 void main(int argc, char argv[]) {// }。这种写法在有的编译器下是会产生谬误的, 导致编译无奈进行。而且这个返回值是能够输入的,能够作为程序是否正确执行的判断,比方你能够用返回值 0 放在程序执行残缺后返回,返回 0 就能够判断程序残缺执行了。如果返回了其余数值,那么程序就呈现了异样。

  1. 小结
    规范的重要性不必过多赘述,如同大家应用的泛滥版本的安卓手机,和只有一个版本的苹果手机零碎一样。过多的规范会让开发者莫衷一是,各自对于本人零碎的魔改优化,只能让普通用户陷入深渊。因而为了防止各自为政的状况呈现,C 语言很早就有了本人的规范,这样就能够实现一统天下的场面。尽管各个编译器有本人的部分特点,然而总体而言,只有是依照 C 语言规范编写的程序能够在任何一个编译器上通过编译。

欢送关注「慕课网」,发现更多 IT 圈优质内容,分享干货常识,帮忙你成为更好的程序员!

正文完
 0