第一章 C 数据类型与预处理器
前言 C++ 学习路线,本人主要也是为了记录一下自己的学习过程
目录
一、 数据类型
1.**signed**----有符号,可修饰char、int。Int是默认有符号的。
2.**unsigned**-----无符号,修饰int 、char
| 整型 | 字节 | 取值范围 | 占位 |
| :------------- | ---- | ------------------------------- | ---- |
| int | 4 | -2,147,483,648 到 2,147,483,647 | %d |
| unsigned int | 4 | 0 到 4,294,967,295 | %u |
| short | 2 | -32,768 到 32,767 | %hd |
| unsigned short | 2 | 0 到 65,535 | %hu |
| long | 4 | -2,147,483,648 到 2,147,483,647 | %ld |
| unsigned long | 4 | 0 到 4,294,967,295 | %lu |
| char | 1 | -128 到 127 | %c |
| unsigned char | 1 | 0 到 255 | %c |
> 为了得到某个类型或某个变量在特定平台上的准确大小,使用 sizeof 运算符。
> 表达式 sizeof(type) 得到对象或类型的存储字节大小
二、预处理器
> 预处理器不是编译器,但是它是编译过程中一个单独的步骤。
> 预处理器是一个文本替换工具
> 所有的预处理器命令都是以井号(#)开头
1.常用预处理器
| 预处理器 | 说明 |
| #include | 导入头文件 |
| #if | if |
| #elif | else if |
| #else | else |
| #endif | 结束 if |
| #define | 宏定义 |
| #ifdef | 如果定义了宏 |
| #ifndef | 如果未定义宏 |
| #undef | 取消宏定义 |
2.宏
undef
define
ifdef
ifudef
undef
3.预处理器是一个文本替换工具
> 宏就是文本替换
//宏一般使用大写区分
//宏变量
//在代码中使用 A 就会被替换为1
#define A 1
//宏函数
#defind test(i) i > 10 ? 1: 0
> 宏函 优点文本替换,每个使用到的地方都会替换为宏定义。
三、关键字
typedef别名
unsigned无符号
size_t 在32位架构中被普遍定义为:typedef unsigned int size_t;
而在64位架构中被定义为:typedef unsigned long size_t;
size_t在32位架构上是4字节,在64位架构上是8字节,在不同架构上进行编译时需要注意这个问题。而int在不同架构下都是4字节,与size_t不同;且int为带符号数,size_t为无符号数