Kisser Leon
這個(gè)kisser不太冷
posts - 100, comments - 102, trackbacks - 0, articles - 0
導(dǎo)航
C++博客
首頁(yè)
新隨筆
聯(lián)系
聚合
管理
<
2007年3月
>
日
一
二
三
四
五
六
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(9)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆分類
(102)
Algorithm(5)
C++(13)
English(5)
gAme(5)
IT(43)
JOKE(9)
隨感(22)
隨筆檔案
(100)
2010年4月 (3)
2008年12月 (1)
2007年11月 (3)
2007年10月 (1)
2007年6月 (2)
2007年5月 (5)
2007年4月 (31)
2007年3月 (54)
積分與排名
積分 - 138533
排名 - 187
最新評(píng)論
1.?re: c++中嵌入python入門(mén)1
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--lll
2.?re: c++中嵌入python入門(mén)1
test.py文件放到哪里呢
--lll
3.?re: python與c++交互學(xué)習(xí)入門(mén)之5
正在學(xué)習(xí)中,mark一下
--畢達(dá)哥拉斯半圓
4.?re: 鏈接器都干了些什么?
好文章,兩天看了兩遍,轉(zhuǎn)載了
--天堂左我往右
5.?re: python與c++交互學(xué)習(xí)入門(mén)之5
作者還在不????
--金剛
閱讀排行榜
1.?Rational Rose 2003下載地址(10119)
2.?鏈接器都干了些什么?(9766)
3.?c++中嵌入python入門(mén)1(9408)
4.?c++中嵌入python入門(mén)4 之 Boost.Python(6703)
5.?c++中嵌入python入門(mén)2(5843)
評(píng)論排行榜
1.?Rational Rose 2003下載地址(16)
2.?多線程學(xué)習(xí)中碰到的一個(gè)很有意思的問(wèn)題 (11)
3.?python與c++交互學(xué)習(xí)入門(mén)之5(7)
4.?c++ volatile關(guān)鍵字(7)
5.?c++中嵌入python入門(mén)1(6)
c++ volatile關(guān)鍵字
Posted on 2010-04-01 10:54
kk
閱讀(2941)
評(píng)論(7)
編輯
收藏
引用
所屬分類:
C++
c++中的volatile關(guān)鍵字一直沒(méi)有使用過(guò)。最近使用了一下。該關(guān)鍵字的意思就是告訴編譯器不要對(duì)該變量進(jìn)行優(yōu)化,使用地址對(duì)該變量進(jìn)行取值而不要直接使用該變量已經(jīng)存在cach/寄存器中的值。
測(cè)試代碼如下:
1
//
volatile.cpp : Defines the entry point for the console application.
2
//
3
4
#include
"
stdafx.h
"
5
6
7
int
_tmain(
int
argc, _TCHAR
*
argv[])
8
{
9
//
volatile int a = 1;
10
int
a
=
1
;
11
printf (
"
a = %d\n
"
, a);
12
13
__asm
14
{
15
mov DWORD ptr [ebp
-
4
], 10h // 修改a的值為0x10
16
}
17
18
printf (
"
a = %d\n
"
, a);
19
20
getchar();
21
22
return
0
;
23
}
24
25
如果編譯器沒(méi)有優(yōu)化的話,打印出來(lái)的值應(yīng)該是1和16。反之,如果沒(méi)有使用volatile,優(yōu)化之后應(yīng)該打印出來(lái)的是1和1
我在vc6和vc2008下測(cè)試了一下:
-----------------------------------------------------------------------------------------
vc2008
-----------------------------------------------------------------------------------------
沒(méi)有關(guān)鍵字volatile
debug下打印的是 1 和 1 ---為什么會(huì)被優(yōu)化了呢?我的優(yōu)化編譯選項(xiàng)是disabled的
release下打印的是 1 和 1
有關(guān)鍵字volatile
debug下打印的是 1 和 1 --- 很奇怪!
release下打印的是 1 和 16
我想可能是編譯器對(duì)debug下作了特殊處理。而且該程序非常簡(jiǎn)單
vc6.0
-----------------------------------------------------------------------------------------
沒(méi)有關(guān)鍵字volatile
debug下打印的是 1 和 16
release下打印的是 1 和 1
有關(guān)鍵字volatile
debug下打印的是 1 和 16
release下打印的是 1 和 1 --- 很奇怪!
小結(jié):
在多線程多核的情況下,要防止被編譯器優(yōu)化!
Feedback
#
re: c++ volatile關(guān)鍵字
回復(fù)
更多評(píng)論
2010-04-01 12:18 by
過(guò)客
誰(shuí)懂的來(lái)解釋下啊
#
re: c++ volatile關(guān)鍵字[未登錄](méi)
回復(fù)
更多評(píng)論
2010-04-01 14:20 by
Jerry
mov DWORD ptr [ebp-4], 10h // 修改a的值為0x10
a地址有錯(cuò)誤
#
re: c++ volatile關(guān)鍵字
回復(fù)
更多評(píng)論
2010-04-02 19:03 by
飛鴿傳書(shū)
幾乎不要用的這個(gè)功能。
#
re: c++ volatile關(guān)鍵字
回復(fù)
更多評(píng)論
2010-04-06 11:07 by
Lo
應(yīng)該用
__asm
{
lea eax, a
mov dword ptr [eax], 0x10
}
要不然 debug 出錯(cuò)的機(jī)率太高了
#
re: c++ volatile關(guān)鍵字[未登錄](méi)
回復(fù)
更多評(píng)論
2010-04-08 16:25 by
我
to Lo
謝謝!
通過(guò)lea獲取的地址肯定是對(duì)的。用你的辦法在2008下試了一下,沒(méi)有volatile輸出都是1和16,也就是說(shuō)編譯器沒(méi)有優(yōu)化----可能是例子太簡(jiǎn)單了
使用了volatile,也都是1和16----這個(gè)是必須要保證的
#
re: c++ volatile關(guān)鍵字
回復(fù)
更多評(píng)論
2010-05-22 16:15 by
啊
你那樣取到的a的地址不對(duì)
微軟在棧中可能還放了其他的臨時(shí)變量
推薦這個(gè)
__asm
{
lea eax, a
mov dword ptr [eax], 0x10
}
#
re: c++ volatile關(guān)鍵字
回復(fù)
更多評(píng)論
2012-04-18 11:49 by
fans
愚蠢總有愚蠢的解釋。
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開(kāi)源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
c++ volatile關(guān)鍵字
環(huán)形緩沖
python與c++交互學(xué)習(xí)入門(mén)之5
c++中嵌入python入門(mén)4 之 Boost.Python
c++中嵌入python入門(mén)3
c++中嵌入python入門(mén)2
c++中嵌入python入門(mén)1
認(rèn)識(shí)理解volatile關(guān)鍵字
鏈接器都干了些什么?
C++編譯選項(xiàng)學(xué)習(xí)
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問(wèn)
Chat2DB
管理
Powered by:
C++博客
Copyright © kk
亚洲人成网亚洲欧洲无码久久
|
久久中文骚妇内射
|
久久中文字幕人妻丝袜
|
久久亚洲春色中文字幕久久久
|
久久国产乱子精品免费女
|
色综合久久中文字幕综合网
|
久久综合88熟人妻
|
色偷偷88欧美精品久久久
|
91精品国产91久久久久福利
|
久久综合日本熟妇
|
国产三级久久久精品麻豆三级
|
中文字幕乱码人妻无码久久
|
国产精品一久久香蕉国产线看
|
欧美久久天天综合香蕉伊
|
国产午夜福利精品久久2021
|
综合久久久久久中文字幕亚洲国产国产综合一区首
|
色天使久久综合网天天
|
精品久久久久久
|
中文国产成人精品久久不卡
|
久久婷婷人人澡人人
|
精品乱码久久久久久久
|
亚洲国产精品无码久久久蜜芽
|
久久久久国产一区二区三区
|
日本福利片国产午夜久久
|
996久久国产精品线观看
|
亚洲精品午夜国产VA久久成人
|
国内精品久久久人妻中文字幕
|
2020久久精品亚洲热综合一本
|
丁香久久婷婷国产午夜视频
|
久久精品国产免费
|
狠狠色丁香久久婷婷综合五月
|
国产精品99久久久精品无码
|
久久久国产99久久国产一
|
伊人久久大香线蕉综合5g
|
美女久久久久久
|
久久亚洲高清综合
|
亚洲综合久久夜AV
|
性做久久久久久久久老女人
|
一级a性色生活片久久无少妇一级婬片免费放
|
色综合久久88色综合天天
|
久久免费美女视频
|