c,c 的一些误解观点.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c,c 的一些误解观点

C/c++ misunderstanding 1. C++虽然主要是以C的基础发展起来的一门新语言,但她不是C的替代品,不是C 的升级,C++和C是兄弟关系。没有谁比谁先进的说法,更重要 的一点是C和C++各自 的标准委员会是独立的,必威体育精装版的C++标准是C++98,必威体育精装版的C标准是C99.因此也没有 先学C再说C++的说法,也不再(注意这 个不再)有C++语法是C语法的超集的说法。 2.C++/CLI 和 C# 是微软的,它们与C和C++没有任何关系,虽然部分语法相似。 但哪两种语言不相似呢?都是abc这26个字母。 3. 不要使用TC/TC++/BC/CB等古老的编译器来学习C/C++,因为它们太古老了, 不支持新的C/C++标准。不要使用CBX/VC++6.0/VC2005等对C/C++标准支持不好的编 译器,虽然这些编译器适合工作,但不适合学习,因为它们中的语法陷阱很多。记 住唯一适合学习的编译器 是gcc/mingw.[antigloss注:Dev-C++ 使用的编译器就 是gcc g++] 4. 不要用代替来包含系统头文件,虽然有些编译器允许你这样做,但它不 符合C/C++标准。 错误的示例:#include stdio.h,#include iostream.[antigloss注:习惯 上, 用于包含标准头文件和系统头文件, 用于包含自定义头文件。标准似乎 没有明确规定不准用 包含标准头文件和系统头文件。使用 包含标准头文件 或者系统头文件只能说是一种不良风格。] 5. 不要将main函数的返回类型定义为void,虽然有些编译器允许你这样做,但 它不符合C/C++标准。不要将函数的int返回类型省略不写,在C++中 要求编译器至 少给一个警告。错误的示例:voidmain () {},main () {} [antigloss注:C99 和C++98都要求编译器对省略int至少发出一个警告] 6. 不要把VC++中的 #includestdafx.h 贴出来,它是预编译头文件。如同上 菜时不要把厨师也放到托盘中。 7. [C++]不要#include iostream.h,不要#include string.h,因为它们已 经被C++标准明确的废弃了,请改为 #includeiostream 和 #includecstring. 规则就是: a. 如果这个头文件是就C++特有的,那么去掉.h后缀,并放入std名字空间,比 如 iostream.h 变为 iostream. b. 如果这个头文件是C也有的,那么去掉.h后缀,增加一个c前缀,比如 string.h 变为 cstring;stdio.h 变为 cstdio, 等等。 BTW:不要把string、cstring、string.h三个头文件搞混淆 BTW:windows.h不是C/C++的标准文件,因此它的命名C/C++不管。 8. 不要再写 char* p XXX 这种语句,要写成 const char* p XXX, 编译器之所以让前者通过编译是为了兼容以前 的大量的旧代码。[antigloss 注: 这段话对 C++ 而言是正确的。但是,目前的 C99 标准似乎并没有定义 XXX 一定 是常量。] BTW:const TYPE* p 和 TYPE const* p 是一样的,风格不同而已。 BTW:C语言中也有const关键字。 9. 不要在同一条语句中包含一个变量的多个++/—— ,因为它们的解析在C/C++ 标准中没有规定,完全取决于编译器的个人行为。 10.C/C++ 是平台无关性语言,因此系统相关的 process/GUI 等不在标准 C/C++ 库中。比如 graphics.h 和 windows.h 等是由某个编译器提供的,而不是由C/C++ 提供的。 11. C/C++只是语言,而且是平台无关性语言。论坛上有部分人甚至认为C就是 dos,C++就是windows,那么请问linux是什么? 12. [C++]面向对象曾经是设计C with class (C++的前身)的主要目的,但C++ 不是,C++是一个多典范语言。主要支持过程调用、基于对象、面向对象、泛式编 程这四种编程典范。当然还支持functional, generative,metaprogramming等典 范。 13. 语法学家不是文学家,所以当你学会了一门计算机语言时,你还需要学习数 据结构和算法,还需要

文档评论(0)

feixiang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档