C语言的标准

C语言发展至今,共形成过4种标准。

文章目录

    • K&R C(也叫经典 C)
    • C89
    • C99
    • C11
    • 其他-关于main()的说明

K&R C(也叫经典 C)

1987年,Brian Kernighan 和 Dennis Ritchie合著的The C Programming
Language
第1版是公认的C标准。它定义了c语言,但没有定义c库。它不是官方的标准。

C89

是由美国国家标准协会(ANSI)在 1989年正式公布的标准。该标准 定义了C语言和C标准库。 它的制定理念是:

  1. 信任程序员;
  2. 不要妨碍程序员做需要做的事;不要妨碍程序员做需要做的事;
  3. 保持语言精练简单;保持语言精练简单;
  4. 只提供一种方法执行一项操作;
  5. 让程序运行更快, 即使不能保证其可移植性(具体目标系统具体实现)。

Tips

  • 国际标准化组织(ISO)采用了这套C标准,因此ISO CANSI C是完全相同的标准。
  • ANSI于1989年批准该标准,因此通常称之为C89
  • ISO于1990年批准该标准,因而又有C90的叫法。

C99

ANSI/ISO联合委员会(C9X委员会)修订C标准,最终发布了C99标准。

  1. 遵循了最初C90标准的原则, 包括保持语言的精练简单。
  2. 委员会的用意不是在C语言中添加新特性, 而是为了达到新的目标。
    第1个目标是, 支持国际化编程。 例如 提供多种方法处理国际字符集;
    第2个目标是, “调整现有实践致力于解决明显的缺陷”。 因此, 在遇到需要将C移至64位处理器时, 委员会根据现实生活中处理问题的经验来添加标准;
    第3个目标是, 为适应科学和工程项目中的关键数值计算,提高C的适应性

C11

2011年发布C11标准。 此次, 委员会提出了一些新的指导原则:

  1. 出于对当前编程安全的担忧, 不那么强调“信任程序员”目标了;
  2. 修订标准的原因不是因为原标准不能用, 而是需要跟进新的技术;
  3. 供应商并未像对C90那样很好地接受和支持C99,这使得C99的一些特性成为C11的可选项。

其他-关于main()的说明

有时候我们在书中经常会看到主函数用void main() 定义,但事实上这种用法并不是任何标准制定的。 C语言标准语法是int main(),任何实现都必须支持如下两种:

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

.
.
.
.
.
.
桃花仙人种桃树,又摘桃花换酒钱_

你可能感兴趣的:(C/CPP)