防止编译器优化的关键词volatile

不使用volatile的情况下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
 const int n = 10;
 int*p = (int*)&n;
 *p = 20;
 printf("%d\n", n);
 printf("%d\n", *p);
 system("pause");
 return 0;
}

结果:

20
20
请按任意键继续. . .

#include<stdio.h>
#include<stdlib.h>
int main()
{
 volatile const int n = 10;
 int*p = (int*)&n;
 *p = 20;
 printf("%d\n", n);
 printf("%d\n", *p);
 system("pause");
 return 0;
}

结果:

10
20
请按任意键继续. . .

时间: 2024-10-10 01:02:23

防止编译器优化的关键词volatile的相关文章

C语言 之编译器优化

C语言的编译器会对变量和代码进行一定的优化,我们看下面这个例子. int a,b,c; a=1; b=a; c=b; 这个程序正常运行的时候会这样子:先把a指向的内存空间内放入1 再把a指向的内存空间里的数读出来放到b指向的内存空间, 最后再把b指向的内存空间里的数读出来放到c指向的内存空间里. 然而编译器要对这个程序进行一定的优化,编译的时候,直接把1放入三个内存空间中. 这样子在正常运行的时候确实是好事,但是总会有一些特殊的情况发生,比如,一个中断程序突然改变了a的值,那么会发生这样的情况:

如何优化网站关键词.

第一点:做好关键词分析(也叫关键词定位):这是进行SEO优化最重要的一环,关键词分析包括:关键词注重量分析.竞争对手分析.关键词与网站相关性分析.关键词安顿.关键词排行猜想. 第二点:网站架构分析:网站结构符合搜索引擎的爬虫喜欢则有利于SEO优化.网站架构分析包括:除去网站架构不良计划.完结树状目录结构.网站导航与衔接优化,网站计划的言语最好采好DIV+CSS样式,代码很有层次和简练. 第三点:与搜索引擎对话:向各大搜索引擎登入进口提交没有录入站点.在搜索引擎看SEO的效果,通过site:你的域

编译器优化陷阱——全局指针多次使用异常

做程序开发一定会和编译器打交道,编译器优化可以给我们代码运行带来一定的提升,但也可能存在一些意想不到的问题.下面就是我在开发时候遇到的一个坑,希望可以给大家一些借鉴 直接上代码说话吧 1 static unsigned char* s_data = NULL; //存储一帧视频数据 2 void DoRendering () 3 { 4 // D3D11 case 5 if (s_DeviceType == kUnityGfxRendererD3D11 && EnsureD3D11Reso

网站优化长尾关键词的理论与实践

网站优化长尾关键词的理论与实践 在设置关键词时经常听到一些站长说要重视长尾关键词,但究竟什么是长尾关键词呢?如何在众多长尾关键词中找到最佳关键词组合呢? 要了解长尾关键词,我们有必要了解一下在网络时代著名的长尾理论.长尾理论由美国人克里斯·安德森提出,他认为:由于成本和效率的因素,过去人们只能关注重要的人或重要的事,如果用正态分布曲线来描绘这些人或事,人们只能关注曲线的头部;,而将处于曲线尾部;.需要更多的精力和成本才能关注到的大多数人或事忽略.这理论并不是太难理解,现在的企业只关注数量有限的大

C#编译器优化那点事

使用C#编写程序,给最终用户的程序,是需要使用release配置的,而release配置和debug配置,有一个关键区别,就是release的编译器优化默认是启用的. 优化代码开关即optimize开关,和debug开关一起,有以下几种组合. | 编译器开关设置 |C#IL代码质量 | JIT本地代码质量 | | ------------- |:-------------:| -----:| | /optimize- /debug-(默认) | 未优化 | 有优化 | | /optimize-

对String类型的认识以及编译器优化

Java中String不是基本类型,但是有些时候和基本类型差不多,如String b = "tao" ; 可以对变量直接赋值,而不用 new 一个对象(当然也可以用 new). Java中的变量和基本类型的值存放于栈内存,而new出来的对象本身存放于堆内存,指向对象的引用还是存放在栈内存.例如如下的代码: int  i=1; String s =  new  String( "Hello World" ); 变量i和s以及1存放在栈内存,而s指向的对象"H

企业网站如何优化好关键词排名,SEO优化网站排名

随着互联网的发展,很多用户都是通过搜索引擎找到想了解的网站,从这里也能体现出搜索引擎带来的便利,如今的企业公司想要网站关键词排名,都是通过做seo优化将网站优化到搜索引擎的首页,关键词排名到了首页从而更多用户能够了解到公司品牌,公司的产品.企业网站如何优化好关键词排名,SEO优化网站排名?下面为大家分享一下. 网站优化关键词的细节有哪些?该如何去做呢? 1.网站TDK标题 明确好网站的TDK标题很重要,明确好网站的TDK标题更好的去做网站内容,以及标题能拓展更多的长尾词,用户搜索关键词最后搜索引

深圳北易信息:网站SEO优化怎么集中优化一个关键词

如今企业为了网站能够在搜索引擎的首页出现企业的网站,使用了各种网站的优化技巧,但是效果还没出现的时候,有些企业就等待不住,直接用竞价推广的方式来推广企业的网站.当然这是有推广成本的公司才会选择,那么小企业或者推广预算不多的企业,只能继续优化网站,那么网站该怎么优化才能上首页?以下内容为大家分享,网站SEO优化怎么集中优化一个关键词. 企业怎么快速优化网站一个关键词? 1.关键词分析 如果想快速优化网站有排名,那么选关键字也非常的重要,不能选择太热度的词也不能选不够热门的词,需要分析出什么关键词有

一个函数返回临时对象引起的编译器优化问题

我们都知道,如果在一个函数调用另一个函数,假设是 main 函数调用 fun 函数,这个 fun 函数返回一个临时类类型变量,那么这个时候编译器就会在 main 函数申请一个空间并生成一个临时对象,通过拷贝构造函数将 fun 返回的临时变量的值拷贝到这个临时对象.我们看如下的代码: #include <iostream> #include <cstring> using namespace std; class Matrix { public: explicit Matrix(do