register
来源:互联网 发布:哪种照相软件好 编辑:程序博客网 时间:2024/05/21 06:35
c中register:
在C语言中存储类型说明符 register要求变量保存在cpu寄存器中,所以不能用取地址符& 取其地址,并且,在全局变量的地方不能出现register 防止存储类型不唯一引起的冲突。
同时,register 变量必须是能被CPU寄存器所接受的类型。这就意味着,register 必须是一个单个的值,并且长度应小于等于整型长度。
#include <stdio.h>#include <stdlib.h>register int b;// error:有坏的存储类 C语言编译器对全局变量保存到内存中,与register(让其保存到cpu)冲突int main(){register int a;int * p = &a;//error:a为寄存器变量保存到cpu中不能取地址C语言不对其进行优化register int a = 0x800000000;// error :从“__int64”到“int”截断system("pause");return 0;}
cpp中register:
在cpp中register声明的变量是否保存到寄存器中取决于上下文,比如,如果对该变量取地址,则cpp编译器就会对代码进行优化,该变量不会保存到寄存器中,而是内存中。
#include <iostream>using namespace std;int main(){register int a = 10;//register只是对cpp做出一个请求,cout << &a << endl;//编译器优化,检测到取地址,就会优化成内存变量(如下图所示)cin.get();return 0;}
0 0
- register
- register
- register
- Register
- register
- register
- Register~~
- register
- register
- register
- register
- register
- register
- register
- register
- register
- register
- 寄存器(Register)
- AsyncUdpSocket
- Failed on connection exception: java.net.ConnectException
- 设计模式系列:适配器模式
- Spark的运行模式
- db2下名称中含特殊字符的schema名删除
- register
- 设计模式系列:迭代器模式
- The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDat
- Java解析properties
- 设计模式系列:组合模式
- 四大组件
- JAVASE基础 Item -- 多线程,并发2
- 设计模式系列:观察者模式
- iOS 自定义tabtabbar 中间按钮凸起