Jas*_*son 19 c standards c99 c89
在下个月开始系统编程之前,我正在研究学习C基础知识和语法.在做一些阅读时,我遇到了C89/99标准.根据维基百科,
C99引入了几个新功能,包括内联函数,几种新数据类型(包括long long int和表示复数的复杂类型),可变长度数组,支持可变参数宏(可变arity的宏)和支持单行以//开头的注释,如BCPL或C++.其中许多已经在几个C编译器中实现为扩展.
C99在很大程度上向后兼容C90,但在某些方面更严格; 特别是,缺少类型说明符的声明不再具有隐式假定的int.标准宏 STDC_VERSION定义为值199901L,表示C99支持可用.GCC,Sun Studio和其他编译器现在支持C99的许多或所有新功能.
我借了一份K&R,第2版,它使用了C89标准.对于学生来说,使用C89是否会使K&R涵盖的某些主题失效,如果是这样,我应该注意什么?
Pup*_*ppy 19
没有理由在C99上学习C89或C90-它已被字面上取代了.很容易找到C99编译器,没有任何理由学习早期的标准.
这并不意味着你的教授不会强迫你使用C89.从这里发布的标记作业的各种问题来看,我感觉很多很多C(以及不幸的是,C++)课程自C89以来没有继续发展.
从初学者的角度来看,你可能没有真正注意到差异 - 有很多C都是C99和C89/90.