三 volatile强制访问内存

在一个变量的频繁使用中,系统为了提高效率,会自动将内存里面的数据放入CPU里的寄存器里。但在某些特殊场景下,放入寄存器这个操作反倒会导致CPU无法及时获取最新的一手数据导致失误(比如烟雾报警机器)所以这个时候为了防止data数据被放入CPU里面的寄存器(防止被优化),我们要给计算机一个指令,让CPU每一次处理数据都是从内存获取的。

example:

volatile int data=0;//对data的访问,必须从内存访问(防止编译器优化)。

四 sizeof测量类型的大小

类型本身不占用空间,但是内存类型有大小。比如int类型啊,int类型占4个字节吗(4B)?不是的,是在写了 "int data;"后,这个“data”变量占用4个字节的空间(4B)。类型有大小,但是它不占空间。只有当类型定义变量的时候,这个变量才会占据相对应类型的空间大小。所以说sizeof测类型大小,倒不如说sizeof测量的是类型未来定义的变量的所占空间的大小。

example:

cout<<sizeof('a')<<endl;//c++自动识别数据类型,这个类型是“char”,大小是一个字节(1B),屏幕显示“1”。

cout<<sizeof(10)<<endl;//如法炮制,int类型,4个字节(4B)。

cout<<sizeof(short)<<endl;//2B。

cout<<sizeof(long)<<endl;//32位平台,4B。

cout<<sizeof(float)<<endl;4B。

cout<<sizeof(double)<<endl;8B。

五 typedef给已有的类型取别名

typedef不能创建新的类型,它的功能是将名称冗长且复杂的类型名取一个短小的名称。

<s> 原来是起外号(喜 </s>

typedef的使用步骤:

1.先用已有的类型名定义一个普通的变量;

2.用别名替代掉变量名;

3.在整个表达式前面加上"typedef";

example:

int num;//步骤一。

int INT666;//步骤二。

typedef int INT666;//步骤三。

INT666 a;//作用与"int a;"等效,INT666就是int类型的别名。

int b;//已有的类型不会失效被覆盖,仍让有效。

----------------------------------------------------------------------------------------------

int arr[5];

int MYARR[5];

typedef int MYARR[5];

MYARR arr={10,20,30,40,50};

for(int i=0;i<5;i++)

{

cout<<arr[i]<<" ";

} cout<<endl;

//结果是“10 20 30 40 50”。

----------------------------------------------------------------------------------------------

int *p;

int *MYP;

typedef int *MYP;

MYP p;//p的类型就是int *类型。相当于“int *p”。

typedef的好处与作用:

一:扩展系统的兼容性,提高项目的可移植性;

二:后期学习与应用结构体和类型的时候可以帮助我们简洁代码,方便好用。

最新文章

  1. CodeForces336 A &amp; B
  2. Atitti 文本分类 &#160;以及 垃圾邮件 判断原理 以及贝叶斯算法的应用解决方案
  3. 中国排名前100的IT公司 (转)
  4. android 数据库操作详解
  5. 通用表表达式(Common Table Expression)
  6. 同一客户代码下一个CPN对应多个FG会出现CPN描述一样的问题
  7. Android使用pull解析xml
  8. [转]用Objective-C实现简单的数学字符串公式的计算
  9. HDU2516-取石子游戏
  10. IDoc 基础知识
  11. Principle of Computing (Python)学习笔记(7) DFS Search + Tic Tac Toe use MiniMax Stratedy
  12. 配置ssh框架启动tomcat服务器报异常Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
  13. blfs(systemd版本)学习笔记-构建ibus-libpinyin使用中文输入法
  14. MySQL的一些操作(学习记录_备忘)
  15. 算法第四版-文字版-下载地址-Robert Sedgewick
  16. Quality of Service 0, 1 &amp; 2
  17. Unity shader学习之Blinn-Phong光照模型
  18. @RequestMapping使用须知
  19. php web开发安全之sql注入和防范:(一)简单的select语句注入和防范
  20. 原生JS实现ajax 发送post请求

热门文章

  1. Java的JDK以及maven环境变量配置
  2. Java Maven环境搭建
  3. centos7.8 安装 redis5.0.2
  4. Android build系统中常用“LOCAL_” 变量
  5. Razor视图cshtml做到运行时编译【提高开发效率】
  6. Element---&gt;&gt;&gt;最新骨架屏Skeleton使用
  7. superset2.0.0 支持MaxCompute 时间颗粒
  8. ESP_IDF中使用TFT_eSPI库驱动ST7789V
  9. k8s centos 79,用kuboard-spray装成功。低版本的。安装docker-ce,安装epel源
  10. Dynamics 365 登录后网页显示空白