C++变量
不同的编译器会有不同,由编译器确定类型的大小
int数据类型——在一定范围内存储整数,4字节大小(32位数据=1符号+31位数据),有符号整数
#include <iostream>
int main()
{
int variable = 8;
std::cout << variable << std::endl;
std::cin.get();
}
unsigned int ——32位数据,无符号
char——1字节数据
char | 1字节数据 | 字符:'A'(65) |
short | 2字节数据 | |
int | 4字节数据 | |
long | 4字节数据 (具体取决于编译器) | |
long long | 8字节数据 | |
float | 4字节数据 | 小数 |
double | 8字节数据 | 双精度 |
bool | 1字节数据 | true/false=1/0 |
std::cout << sizeof(bool) << std::endl;
函数
多次调用
可以为函数提供一定的参数,函数可以为我们返回值
我们通常将函数分解为声明和定义,
声明通常存储在头文件中,在编译单元或cpp文件中编写定义
C++头文件
头文件通常会被包含在CPP文件中,我们做的就是复制粘贴,将头文件的内容放入cpp文件中,通过#include预处理器指令来实现,因此#include具有复制和粘贴的能力
#pragma once
pragma——本质上是一个被发送到编译器或预处理器的预处理指令,
pragma once——监督这个头文件,阻止我们单个头文件多次被包含,并转换为单个翻译单元
如果我们不小心多次包含了一个文件,并转换成一个翻译单元,我们会得到duplicate复制错误,因为我们会复制粘贴整个头文件多次,演示这一点的最好方法是我们创建一个结构体。结构体的名字必须是唯一的。
另一种监督头文件的方法
#ifdef _LOG_H
#define _LOG_H
。。。。
#endif
检查看是否有一个叫做_LOG_H的符号被定义了,
如果它没有被定义,将继续在编译中包含以下代码;
如果被定义了,那么所有。。。。都不会被包含进来
#include <iostream>
尖括号——告诉编译器搜索包含路径文件夹(没有相对当前文件夹,只需要在其中一个包含目录里面)
#include "Log.h"
引号——指定编译器包含目录的相对路径里面的文件
通常用于包含相当于当前文件的文件
例如,如果我有一个名为log.h文件,如果他在log.cpp文件所在目录的上层目录下,我可以使用../Log.h返回当前文件的上级目录,因为这是相对于当前文件的路径。
尖括号只用于编译器包含路径,引号可以做一切,但我通常只用他在相对路径。