【C/C++】从 C 到 C++ (持续更新)

简介: 从 C语言转到 C++ 需要注意的事项

I - 新增类型

1.1 - 布尔类型


C 中没有布尔类型,所有真假的判断通过 int 类型, 0 为假,其他值为真, C++ 中新引入类型 bool 类型,可使用值 truefalse

printf("size of bool = %d", sizeof(bool));

打印结果:

size of bool = 1

占用内存为 1 个字节

1.2 - string 字符串类型


C++ 中新增了 string 类型,相较 char 数组,更加便捷字符串的操作。

std::string str = "Hello";
str += " world!";

II - 修改类型

2.1 - 空指针

系统库中对 NULL 的定义为

#ifndef NULL
    #ifdef __cplusplus
        #define NULL 0
    #else
        #define NULL ((void *)0)
    #endif
#endif

注意事项


不严格的编译器下,bool 类型可以与指针类型发生隐式转换

// definition
DataStruct(bool bval);
// call
DataStruct("Test"); // const char * to bool

III - 语法扩展

3.1 - struct

C语言中 struct 内不能定义部函数,仅可定义函数指针,但 C++ 中,struct 内部可以定义函数,新增一个与其相似的关键字 class,内部可定义变量,且定义函数。

IV - 对C语言的兼容

4.1 - 头文件

仍然支持C语言标准库头文件如

#include <stdio.h>
#include <stdlib.h>

一般 C++ 的头文件为去掉 .h ,对于C语言标准库头文件则去掉 .h 增加 c 前缀如

#include <cstdio>
#include <cstdlib>
目录
相关文章
|
9月前
|
C++
C++编码规范——日积月累、持续更新
C++编码规范——日积月累、持续更新
150 0
|
3月前
|
C++
C++核心编程三:函数提高(持续更新)
C++核心编程三:函数提高(持续更新)
|
3月前
|
编译器 C++
C++核心编程二:引用(持续更新)
C++核心编程二:引用(持续更新)
|
3月前
|
程序员 编译器 C++
C++核心编程一:内存分区模型(持续更新)
C++核心编程一:内存分区模型(持续更新)
|
3月前
|
C++
C++基础学习:通讯录管理系统(持续更新)
C++基础学习:通讯录管理系统(持续更新)
|
4月前
|
网络协议 关系型数据库 MySQL
[mysql 基于C++实现数据库连接池 连接池的使用] 持续更新中
[mysql 基于C++实现数据库连接池 连接池的使用] 持续更新中
|
4月前
|
关系型数据库 MySQL C++
[mysql C++ 简单连接到深入] 持续更新中
[mysql C++ 简单连接到深入] 持续更新中
|
11月前
|
安全 IDE 数据挖掘
C/C++中常用必会的专业单词(持续更新 目前165个)
C/C++中常用必会的专业单词(持续更新 目前165个)
163 0
|
11月前
|
编译器 C语言 C++
【C++系列P1】带上这篇基础小宝典,进发C++!(持续更新ing~)
【C++系列P1】带上这篇基础小宝典,进发C++!(持续更新ing~)
|
C++ 容器
C++使用小细节--持续更新
文章目录 1. fixed 2. C++中结构体内重载运算符 3. reserve() resize() 4. 优先队列重载运算符的三种方式 方式1 友元函数 方式2 常引用 方式3 结构体之外 5. OJ数据制作(文件读写) 读取文件 写入文件
88 0
C++使用小细节--持续更新