C99为该语言添加了一些有用的功能,但我发现很难推荐任何依赖于C99的练习.这是因为C99语言的实际实现很少(任何?).当然,在一些编译器中支持有限,但没有人愿意花时间编写C代码只是为了让它不可移植.
考虑到标准是在10年前编写并最终确定的,这是令人沮丧的.另外,我不时听到有关C1x的讨论,我想知道为什么有人会采取措施修改语言,因为当前版本的语言还没有实现.
所以我的问题是,作为乔今天的C程序员,我对C99标准有什么用处(如果有的话)?
MSVC不会,也不会支持C99.但微软几乎没有动力更新他们的C编译器.这并不是说他们会失去太多的业务.
但是有很多编译器都支持C99.
http://en.wikipedia.org/wiki/C99#Implementations
关于gcc:
http://gcc.gnu.org/c99status.html
你是对的,或许C99对于库代码没有用(并且可能永远不会没有微软的支持),但是如果你正在从事内部或个人项目,你可以选择编译器和工具,那么可移植性不是很多问题.
关于C1x,我认为值得注意的是,标准委员会非常清楚C99尚未被广泛采用,并且不想重复相同的错误(或使情况更糟).来自C1x章程:
与C9X不同,伦敦会议的共识是没有任何发明,毫无例外.只应考虑那些具有历史并且通过商业实现共同使用的功能.此外,必须注意以一种使标准和商业实现兼容的方式标准化这些功能.
和:
原始标准得到了用户和供应商社区的积极响应.但是,C99并没有得到如此广泛的接受.