• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 基于C/C++ 常见误区详解

基于C/C++ 常见误区详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++socket编程详解,c++指针详解,c++编程实例详解,c++关键字详解,c++编程实例详解pdf等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
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++函数/类/模板库。
  </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++的虚析构详解及实例代码
  • C++中Socket网络编程实例详解
  • C++模版函数详解
  • 详解C++11中的右值引用与移动语义
  • C++详解默认参数的构造函数及简单实例代码
  • C++如何动态的生成对象详解
  • C++ 反射机制详解及实例代码
  • C++ 处理中文符号实例详解
  • C++函数重载详解及实例代码
  • C++ 继承详解及实例代码

相关文章

  • 2017-05-28C++去除输入行中空白的方法
  • 2017-05-286个变态的C语言Hello World程序
  • 2017-05-28C语言中使用lex统计文本文件字符数
  • 2017-05-28纯C语言:分治假币问题源码分享
  • 2017-05-28详解C语言中的wait()函数和waitpid()函数
  • 2017-05-28C++ AfxBeginThread的介绍/基本用法
  • 2017-05-28基于C语言实现的aes256加密算法示例
  • 2017-05-28C++循环队列实现模型
  • 2017-05-28最大子矩阵问题实例解析
  • 2017-05-28C语言数据结构 双向链表的建立与基本操作

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++编写DLL动态链接库的步骤与实现方法
    • C语言中操作utmp文件的相关函数用法
    • 头文件不宜定义变量的原因全面解析
    • C++Primer笔记之顺序容器的使用详解
    • 浅谈c++调用python链接的问题及解决方法
    • C/C++获取目录下的文件列表信息
    • 二维指针动态分配内存连续问题深入分析
    • C语言实现数据结构和双向链表操作
    • c++内联函数(inline)使用详解
    • linux多线程之信号量

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有