我处于可能有机会向一些学生教授C的情况.大学希望教他们纯c而不是c ++,以保持高级c ++课程的独立性.
由于c ++是从c派生的,是否有一个官方的"c规则",其中包含c的所有功能,但没有c ++功能?我想知道的原因是我可以查看我需要教给学生的东西.
我曾经看过c ++标准的(2000页?)手册.即使现在是20/30岁,c也存在这样的事情吗?
此致,Ed
编辑:我应该指出,我已经很好地了解了C/C++ 3年.我唯一不知道的是"正式"C是什么,什么是"正式"C++.这是我的目标,所以我可以给其他学生一个比我自己更好的教育.
在1990年,1999年和2011年出版了3种官方ISO C标准.还有一些"技术勘误",正式文件对标准进行了修正.
标准本身可以从ISO或国家标准机构(如美国ANSI)以PDF(或纸质)格式购买.ANSI以约30美元的价格销售C11标准,但具有严格的许可要求.技术勘误表本身是免费提供的,但如果没有标准,它们就无济于事.如果你想让你的班级可以使用这个标准,那可能不是一个实用的方法.
但是C标准的草案经常在ISO C委员会的网站上提供.
N1256是C99标准的草案,其中三个技术勘误表合并.对于大多数目的而言,它实际上比官方C99标准更好.
N1570是在ISO标准发布之前发布的2011 ISO C标准的最新版(据我所知,据我所知).N1570与官方标准之间只有一些细微的编辑差异.
还有一个C11标准的小技术勘误,其中包含一些不在N1570或C11中的修复:由于疏忽,公布的标准没有正确定义__STDC_VERSION__和可选__STDC_LIB_EXT1__宏的值(两者都是201112L) .
每个标准(和草案)都总结了它与之前标准之间的差异.
除了标准(并非真正为一般程序员编写)之外,Harbison&Steele的C:A参考手册是一个非常好的参考.目前的第5版涵盖C90和C99,但不包括C11.(我不知道第6版的任何计划.)