江苏快三开奖结果

隨筆 - 505  文章 - 1033  trackbacks - 0
<2011年2月>
303112345
6789101112
13141516171819
20212223242526
272812345
6789101112


子曾經曰過:編程無他,唯手熟爾!

常用鏈接

留言簿(94)

隨筆分類(649)

隨筆檔案(505)

相冊

BCB

Crytek

  • Crytek's Offical Modding Portal

Game Industry

  • Welcome to AMD Developer Central
  • A guy who works on the game engine Gamebryo at Emergent Game Technologies.
  • Breaking news and the lastest jobs for European games developers
  • Emergent sales type guy
  • Gamasutra
  • GameIndustry

OGRE

other

  • 搜索代碼,搜索Loki::試試
  • a guy in America whose old hometown is in ShanDong Province
  • read books

Programmers

Qt

  • Qt的信息和資源,很全
  • 中國人討論Qt的地方
  • 有“Qt簡體中文文檔“
  • 貌似人氣很高啊
  • 好多QT控件,開源項目,哈哈,爽
  • 用Qt和OpenGL實現的Qt控件庫,3D的,震撼死了
  • Qt老家
  • 一個正在挪威奧斯陸工作的中國軟件工程師

WOW Stuff

搜索

  •  

積分與排名

  • 積分 - 784570
  • 排名 - 16

最新隨筆

最新評論

閱讀排行榜

評論排行榜


static_cast  YU reinterpret_cast   

  reinterpret_castSHIWEILEYINGSHEDAOYIGEWANQUANBUTONGLEIXINGDEYISI,ZHEGEGUANJIANCIZAIWOMENXUYAOBALEIXINGYINGSHEHUIYUANYOULEIXINGSHIYONGDAOTA。WOMENYINGSHEDAODELEIXINGJINJINSHIWEILEGUNONGXUANXUHEQITAMUDE,ZHESHISUOYOUYINGSHEZHONGZUIWEIXIANDE。(ZHEJUHUASHIC++BIANCHENGSIXIANGZHONGDEYUANHUA)

  static_cast 和 reinterpret_cast 操作符修改了操作數類型。它們不是互逆的; static_cast 在編譯時使用類型信息執行轉換,在轉換執行必要的檢測(諸如指針越界計算, 類型檢查). 其操作數相對是安全的。另一方面;reinterpret_cast 僅僅是重新解釋了給出的對象的比特模型而沒有進行二進制轉換, 例子如下:

  int n=9; double d=static_cast < double > (n);

  SHANGMIANDELIZIZHONG, WOMENJIANGYIGEBIANLIANGCONG int ZHUANHUANDAO double。 ZHEXIELEIXINGDEERJINZHIBIAODASHISHIBUTONGDE。 YAOJIANGZHENGSHU 9 ZHUANHUANDAO SHUANGJINGDUZHENGSHU 9,static_cast XUYAOZHENGQUEDIWEISHUANGJINGDUZHENGSHU d BUZUBITEWEI。QIJIEGUOWEI 9.0。ERreinterpret_cast DEXINGWEIQUEBUTONG:

  int n=9;

  double d = reinterpret_cast<double  * > (n);

  ZHECI, JIEGUOYOUSUOBUTONG. ZAIJINXINGJISUANYIHOU, d BAOHANWUYONGZHI. ZHESHIYINWEI reinterpret_cast JINJINSHIFUZHI n DEBITEWEIDAO d, MEIYOUJINXINGBIYAODEFENXI.

江苏快三开奖结果  YINCI, NIXUYAOJINSHENSHIYONG reinterpret_cast.



Allows any pointer to be converted into any other pointer type. Also allows any integral type to be converted into any pointer type and vice versa.
One practical use of reinterpret_cast is in a hash function, which maps a value to an index in such a way that two distinct values rarely end up with the same index.


// 02_reinterpret_cast.cpp : 定義控制臺應用程序的入口點。
//

#include 
"stdafx.h"
#include 
<iostream>

using namespace std;

// Returns a hash code based on an address
unsigned short Hash( void *p ) 
{
    unsigned 
int val = reinterpret_cast<unsigned int>( p );
    
return ( unsigned short )( val ^ (val >> 16));
}

int _tmain(int argc, _TCHAR* argv[])
{
    
int* pInt = NULL;
    
// 把負數解釋為地址
    pInt = reinterpret_cast<int*>(-0x0024FFE4); 
    cout 
<< pInt << endl; // FFDB001C 地址
    
// 4292542492,其十六進制表示正是FFDB001C
    cout << reinterpret_cast<unsigned int>(pInt) << endl; 
    cout 
<< UINT_MAX << endl; // 4294967295

    
int iValue = 9;
    
int* pValue = &iValue;
    cout 
<< &iValue << endl; // 0012FF1C 地址
    cout << pValue << endl;  // 0012FF1C 地址
    cout << *pValue << endl;  // 9 值

    cout 
<< reinterpret_cast<double*>(iValue) << endl; // 00000009 把iValue當作指針了
    cout << reinterpret_cast<double*>(pValue) << endl; // 0012FF1C 地址

    
int a[20];
    
for ( int i = 0; i < 20; i++ )
        cout 
<< Hash( a + i ) << endl;

    
return 0;
}
/* 輸出:
FFDB001C
4292542492
4294967295
0012FF1C
0012FF1C
9
00000009
0012FF1C
65194
65198
65234
65238
65242
65246
65218
65222
65226
65230
65266
65270
65274
65278
65250
65254
65258
65262
65298
65302

*/
posted on 2011-02-16 20:00 七星重劍 閱讀(2216) 評論(0)  編輯 收藏 引用 所屬分類: PL--c/c++