标签:双层 字符串 声明 同名 strong inline 出现 编译 小尺寸
类型 |
16位平台 |
32位平台 |
64位平台 |
char |
1 |
1 |
1 |
short |
2 |
2 |
2 |
int |
2 |
4 |
4 |
long |
4 |
4 |
8 |
long long |
/ |
8 |
8 |
指针 |
2 |
4 |
8 |
float |
4 |
4 |
4 |
double |
8 |
8 |
8 |
类型 |
含义 |
最小尺寸 |
bool |
布尔类型 |
未定义 |
char |
字符 |
8位 |
wchar_t |
宽字符 |
16位 |
char16_t |
Unicode字符 |
16位 |
char32_t |
Unicode字符 |
32位 |
short |
短整型 |
16位 |
int |
整型 |
16位 |
long |
长整型 |
32 |
long long |
长整型 |
64 |
float |
单精度浮点数 |
6位有效数字 |
double |
双精度浮点数 |
10位有效数字 |
long double |
扩展双精度浮点数 |
10位有效数字 |
使用int执行整数运算,short常常太小,long和int一般尺寸一样。如果int不够,用long long。
在算数表达式中不要使用char或bool,使用char特别容易出问题。如果要使用一个不大的整数,那么明确执行为signed char或unsigned char。
执行浮点数运算用double,float通常进度不够而且两者计算代价相差无几。Long double一般没有必要,且消耗不容忽视。
字符和字符串字面值 |
|||
前缀 |
含义 |
类型 |
|
u |
Unicode16字符 |
char16_t |
|
U |
Unicode32字符 |
char32_t |
|
L |
宽字符 |
wchar_t |
|
u8 |
UTF-8(仅用于字符串字面常量) |
char |
|
整型字面值 |
浮点字面值 |
||
u or U |
unsigned |
f or F |
float |
l or L |
long |
l or L |
long double |
ll or LL |
long long |
|
|
初始化和赋值是两个完全不同的操作。
(分离式编译)
如果想声明一个变量而非定义它,就在变量名前添加关键字extern,而且不要显式地初始化变量
const对象默认在文件内有效,当多个文件出现了同名const变量,等同于不同文件中定义了独立的变量。
如果想不同文件之间共享const,则不管在声明还是定义中都添加extern关键字。
顶层const表示本身是个常量,底层const表示指针指向的对象是一个常量。
常量表达式:值不会改变且在编译阶段就能计算结果的表达式。
尽管指针和引用可以定义成constexpr,其初始值受到严格的限制。constexpr指针的初始值必须是nullptr或者0,或者是储存于某个固定地址中的对象。储存于函数体之外的对象其地址固定不变,能用来初始化constexpr指针。
decltype的表达式是一个变量,则decltype返回该变量的类型,包括顶层const和引用在内。
如表达式是解引用操作,则得到引用类型。
如果是加了双层括号的变量,则结果永远是引用。
预处理变量无视C++中关于作用域的规则
标签:双层 字符串 声明 同名 strong inline 出现 编译 小尺寸
原文地址:https://www.cnblogs.com/logchen/p/9439774.html