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++中要求编译器至少给一个警告。错误的示例:void main() {},main() {} [antigloss注:C99和C++98都要求编译器对省略int至少发出一个警告]

6. 不要把VC++中的 #include "stdafx.h" 贴出来,它是预编译头文件。如同上菜时不要把厨师也放到托盘中。

7. [C++]不要#include <iostream.h>,不要#include <string.h>,因为它们已经被C++标准明确的废弃了,请改为 #include <iostream> 和 #include <cstring>。规则就是:
    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",编译器之所以让前者通过编译是为了兼容以前的大量的旧代码。
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. 语法学家不是文学家,所以当你学会了一门计算机语言时,你还需要学习数据机构和算法,还需要掌握工具和平台API的用法。

14. C/C++ 是通用语言,因此语法很复杂,你应当裁减成适合你自己的语法集合,比如裁减成 better C 和 ADT。

15. C/C++是通用语言,因此只含通用的库,你应该丰富自己需要的库,比如汽车工业协会有自己的C/C++函数/类/模板库。

转载于:https://www.cnblogs.com/carekee/articles/2569805.html

C/C++ 常见误区相关推荐

  1. Web前端工程师的一些常见误区

    想要作为一名合格的web前端工程师,那么掌握基本的开发技术是远远不够的,在职场中还要少犯一些错误,本期小编为大家分享的web前端培训教程主要是介绍一些web前端工程师常见的误区,希望对大家有所帮助. ...

  2. B2B2C网站系统建设的常见误区

    随着网络的高速发展,极大的改变了人们的购物消费行为习惯,因此也带动电子商务的发展,很多传统企业想选择转型却对B2B2C网站系统缺乏一定的了解.那么接下来就为大家讲讲B2B2C网站系统的在建设过程中所遇 ...

  3. Web前端工程师的一些常见误区介绍!

    想要作为一名合格的web前端工程师,那么掌握基本的开发技术是远远不够的,在职场中还要少犯一些错误,本期小编主要是介绍一些web前端工程师常见的误区,希望对大家有所帮助. Web前端工程师的一些常见误区 ...

  4. HTML文件撰写的注意事项有哪些,CSS及HTML 常见误区和注意事项(一)

    CSS及HTML 常见误区和注意事项(一) 为什么要设置HTML和body的高度 开始思考这个问题的起因: 有一次写练习,当我想设置一个div元素的垂直居中布局时,设置为以下CSS代码: positi ...

  5. 技术干货 | Docker容器中需要避免的十种常见误区

    当下最火爆的Docker,是一个开源的应用容器引擎.大家已经开始认同并接受容器技术,并意识到它能够解决多种现实问题并具备一系列无可比拟的优势.今天小数就和大家聊一聊容器技术的优势和误区,帮助大家更好地 ...

  6. 嵌入式开发-浅谈嵌入式MCU开发中的三个常见误区

    浅谈嵌入式MCU开发中的三个常见误区 原创 2017-09-30 胡恩伟 汽车电子expert成长之路 目录 (1)嵌入式MCU与MPU的区分 (2)误区一:MCU的程序都是存储在片上Flash上,然 ...

  7. 玉米社:竞价推广的常见误区有哪些?

    竞价推广的常见误区有哪些? 1.关键词精准,推广效果就好 有流量就一定有转化吗?当然不是!良好的推广效果是推广人员.网站的营销力.客服的综合素质等多方面共同作用的结果,否则,有流量进入,留不住,依然会 ...

  8. 收集:现场救人、抗震救援、灾后心理援助、地震和救灾的常见误区、地震时使用手机报平安办法...

    一.地震现场救人的三条经验 这几丢,我一直在打红十字舍的电话,想把这个建议转达灾区救援队,但一直占线.请相信我  我是唐山人,是亲历者,请四川的同胞想办法能把我的建议转达最好. 1.教人工具:一大颗直 ...

  9. 拨开云雾:破除大数据的四大常见误区

    文章讲的是拨开云雾:破除大数据的四大常见误区,大数据概念自诞生以来,与之相关的争论之声就不绝于耳.如今似乎每一家软件供应商.咨询服务企业以及意见领袖都在以自己的理解为其进行"正确" ...

  10. 【说透区块链系列】区块链有哪些常见误区?

    经过了我前面几篇文章的铺垫讲解,你应该已经对区块链的知识体系已经有了一个基本的了解,但是,区块链是一项新兴的事物,大多数人依然处于知识的迷雾区,对区块链的理解并不是十分透彻. 我在很多场合都做过区块链 ...

最新文章

  1. codevs 1531 山峰
  2. vim 多行注释消除注释,多行删除
  3. python字符串类型str_python数据类型之字符串类型str
  4. Android 4.4.2 动态添加JNI库方法记录 (二 app应用层)
  5. mysql group_concat时间用法
  6. H5 input输入限制最大位数,和调用小键盘需求发生冲突的解决办法
  7. 文档转换乱码异常解决:unoconv openoffice libreoffice
  8. 人工智能语音识别ppt
  9. 程序员锁死服务器导致公司倒闭,案件终于开庭了
  10. 数字化智慧园区建设方案
  11. 基于FPGA的SDRAM控制器设计(4)
  12. 安理工计算机专业分数线,安徽理工大学复试录取分数线
  13. 西北乱跑娃 --- bottle微框架从注册到应用(三)
  14. 16秋南开计算机应用答案,南开16秋学期《计算机应用基础》在线作业.doc
  15. 常用的Linux发行版
  16. iOS 14.2 内置原生壁纸,安排上吧!
  17. TechBeat: 强化学习ppo让决策智能演化出无限可能
  18. 02 Python安装 - 纯Python安装
  19. Linux和windows之间实现文件的粘贴复制
  20. 流程中某个环节落地不好怎么办?

热门文章

  1. html帧动画效果,利用css3-animation实现逐帧动画效果
  2. 托管系统的mysql设计_PHP+MySQL托管中心管理系统的设计与实现
  3. git 回滚到某个commit_Git 整理 v1.0 | Git 操作整理进阶篇
  4. 如何构建NLP Pipeline,各模块代码实现细节全在这里!
  5. 医疗知识图谱NLP项目,实体规模4.4万,实体关系规模30万
  6. eclipse lombok插件安装_Eclipse安装virgo插件
  7. floodfill算法 java_OpenCV 3 floodFill(漫水填充)、图片的放大缩小 pyrUp、pyrDown、Resize JAVA OpenCV专题学习10...
  8. mask rcnn算法分析_注意力模型RPN(faster-rcnn)与APN(RA-CNN)对比精析
  9. python大众点评最新字体加密破解完结
  10. lambda函数if_Lambda函数用法总结