锘??xml version="1.0" encoding="utf-8" standalone="yes"?>99久久精品国内,久久精品无码免费不卡,亚洲国产综合久久天堂 http://m.shnenglu.com/bangle/category/8010.html鐢峰効褰撹嚜寮?/description>zh-cnThu, 24 Mar 2011 22:13:25 GMTThu, 24 Mar 2011 22:13:25 GMT60lamda鐨勭畝鍗曞疄鐜?/title><link>http://m.shnenglu.com/bangle/archive/2011/03/22/142527.html</link><dc:creator>榛戣壊澶╀嬌</dc:creator><author>榛戣壊澶╀嬌</author><pubDate>Tue, 22 Mar 2011 15:47:00 GMT</pubDate><guid>http://m.shnenglu.com/bangle/archive/2011/03/22/142527.html</guid><wfw:comment>http://m.shnenglu.com/bangle/comments/142527.html</wfw:comment><comments>http://m.shnenglu.com/bangle/archive/2011/03/22/142527.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/bangle/comments/commentRss/142527.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/bangle/services/trackbacks/142527.html</trackback:ping><description><![CDATA[鎵璋揕ambda錛岀畝鍗曠殑璇存槸蹇熺殑灝忓嚱鏁扮敓鎴?<br>鍦⊿TL鐨勭畻娉曚腑寰堝鍦版柟闇瑕佹彁渚涗竴涓嚱鏁板璞℃垨浠垮嚱鏁板for_each<br> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #000000;">for_each(v.begin(), v.end(), op());    </span><span style="color: #008000;">//</span><span style="color: #008000;">鍘熸牸寮忓姝?br></span></div> 濡傛灉闇瑕佷笉鐢ㄧ殑綆楁硶灝遍渶瑕佷簺涓嶅悓鐨勫嚱鏁板璞★紝浣嗘槸寮曠敤浜嗕竾鑳界殑lambda鍚庢晥鏋滃氨涓嶅悓浜?鏁堟灉濡備笅<br> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #000000;">for_each(v.begin(), v.end(), _1</span><span style="color: #000000;">=</span><span style="color: #000000;">2</span><span style="color: #000000;">);    </span><span style="color: #008000;">//</span><span style="color: #008000;">_1=2鏄竴涓豢鍑芥暟,閫氳繃閲嶈澆=瀹炵幇<br></span></div> 闇瑕佺殑鎿嶄綔涓鐩簡鐒訛紝綆鍗曞垎鏋愪笅for_each絎笁涓弬鏁伴渶瑕佺殑鏄竴涓嚱鏁版垨浠垮嚱鏁幫紝鎵浠1=2蹇呯劧浜х敓鐨勬槸涓涓豢鍑芥暟,澶ц嚧鍙互鎺ㄥ嚭鏄噸杞戒簡=瀹炵幇鐨勪駭鐢熶豢鍑芥暟錛岄偅涔堢湡姝g殑鎿嶄綔榪橀渶瑕佷竴涓皝瑁咃紝鍗抽渶瑕佷袱涓被瀹炵幇錛岀涓涓被澶ц嚧濡備笅<br> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #0000ff;">struct</span><span style="color: #000000;"> place_holder<br>{<br>    </span><span style="color: #008000;">//</span><span style="color: #008000;">閲嶈澆闇瑕佺殑綆楁硶鎿嶄綔</span><span style="color: #008000;"><br></span><span style="color: #000000;">    template </span><span style="color: #000000;"><</span><span style="color: #000000;">typename R</span><span style="color: #000000;">></span><span style="color: #000000;"><br>    op</span><span style="color: #000000;"><</span><span style="color: #000000;">R</span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #0000ff;">operator</span><span style="color: #000000;">=</span><span style="color: #000000;">(R i)<br>    {<br>        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> op</span><span style="color: #000000;"><</span><span style="color: #000000;">R</span><span style="color: #000000;">></span><span style="color: #000000;">(i);<br>    }<br>};</span></div> 妯℃澘浣垮緱榪欎釜緇撴瀯鍙互浼犲叆浠諱綍綾誨瀷鐨勫弬鏁幫紝閫氳繃閲嶈澆=鎿嶄綔鍐呴儴榪斿洖浜嗕竴涓豢鍑芥暟錛屽叿浣撶殑鎿嶄綔鐢變竴涓嬬殑浠垮嚱鏁板疄鐜?br> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #008000;">//</span><span style="color: #008000;">浠垮嚱鏁幫紝鍗抽噸杞戒簡()鎿嶄綔鐨勭被</span><span style="color: #008000;"><br></span><span style="color: #000000;">template </span><span style="color: #000000;"><</span><span style="color: #000000;">typename T</span><span style="color: #000000;">></span><span style="color: #000000;"><br></span><span style="color: #0000ff;">struct</span><span style="color: #000000;"> op<br>{<br>    op(T i): _i(i) {}<br>    T </span><span style="color: #0000ff;">operator</span><span style="color: #000000;">()(T </span><span style="color: #000000;">&</span><span style="color: #000000;">i)<br>    {<br>        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> i </span><span style="color: #000000;">=</span><span style="color: #000000;"> _i;<br>    }<br>    T _i;<br>};</span></div> 榪欎釜浠垮嚱鏁板皢浼犲叆鐨勫紩鐢ㄥ弬鏁拌繘琛屼簡璧嬪兼搷浣滐紝瀹炵幇浜嗘渶緇堢殑鎿嶄綔.<br>浠ヤ笂鐨勪唬鐮佸疄鐜?鎿嶄綔濡傛灉闇瑕佸叾浠栨搷浣滃垯閲嶈澆鐩稿簲鐨勬搷浣滀緥濡?=<br>渚濇綾繪帹鍗犱綅綾誨疄鐜?=騫墮氳繃浠垮嚱鏁板彲浠ュ疄鐜?=鐨勬搷浣滀互涓嬫槸瀹屾垚鐨勪唬鐮?br> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #008000;">//</span><span style="color: #008000;"> lambda.cpp : 瀹氫箟鎺у埗鍙板簲鐢ㄧ▼搴忕殑鍏ュ彛鐐廣?br></span><span style="color: #008000;">//<br></span><span style="color: #000000;"><br>#include </span><span style="color: #000000;">"</span><span style="color: #000000;">stdafx.h</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>#include </span><span style="color: #000000;"><</span><span style="color: #000000;">vector</span><span style="color: #000000;">></span><span style="color: #000000;"><br>#include </span><span style="color: #000000;"><</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">></span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">using</span><span style="color: #000000;"> </span><span style="color: #0000ff;">namespace</span><span style="color: #000000;"> std;<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">浠垮嚱鏁幫紝鍗抽噸杞戒簡()鎿嶄綔鐨勭被</span><span style="color: #008000;"><br></span><span style="color: #000000;">template </span><span style="color: #000000;"><</span><span style="color: #000000;">typename T</span><span style="color: #000000;">></span><span style="color: #000000;"><br></span><span style="color: #0000ff;">struct</span><span style="color: #000000;"> op<br>{<br>    op(T i): _i(i) {}<br>    T </span><span style="color: #0000ff;">operator</span><span style="color: #000000;">()(T </span><span style="color: #000000;">&</span><span style="color: #000000;">i)<br>    {<br>        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> i </span><span style="color: #000000;">=</span><span style="color: #000000;"> _i;<br>    }<br>    T _i;<br>};<br>template </span><span style="color: #000000;"><</span><span style="color: #000000;">typename T</span><span style="color: #000000;">></span><span style="color: #000000;"><br></span><span style="color: #0000ff;">struct</span><span style="color: #000000;"> op1<br>{<br>    op1(T i):_i(i){}<br>    T </span><span style="color: #0000ff;">operator</span><span style="color: #000000;">()(T </span><span style="color: #000000;">&</span><span style="color: #000000;">i)<br>    {<br>        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> i </span><span style="color: #000000;">+</span><span style="color: #000000;"> _i;<br>    }<br>    T _i;<br>};<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">鍗犱綅絎?/span><span style="color: #008000;"><br></span><span style="color: #0000ff;">struct</span><span style="color: #000000;"> place_holder<br>{<br>    </span><span style="color: #008000;">//</span><span style="color: #008000;">閲嶈澆闇瑕佺殑綆楁硶鎿嶄綔</span><span style="color: #008000;"><br></span><span style="color: #000000;">    template </span><span style="color: #000000;"><</span><span style="color: #000000;">typename R</span><span style="color: #000000;">></span><span style="color: #000000;"><br>    op</span><span style="color: #000000;"><</span><span style="color: #000000;">R</span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #0000ff;">operator</span><span style="color: #000000;">=</span><span style="color: #000000;">(R i)<br>    {<br>        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> op</span><span style="color: #000000;"><</span><span style="color: #000000;">R</span><span style="color: #000000;">></span><span style="color: #000000;">(i);<br>    }<br>    template </span><span style="color: #000000;"><</span><span style="color: #000000;">typename R</span><span style="color: #000000;">></span><span style="color: #000000;"><br>    op1</span><span style="color: #000000;"><</span><span style="color: #000000;">R</span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #0000ff;">operator</span><span style="color: #000000;">+=</span><span style="color: #000000;">(R i)<br>    {<br>        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> op1</span><span style="color: #000000;"><</span><span style="color: #000000;">R</span><span style="color: #000000;">></span><span style="color: #000000;">(i);<br>    }<br>};<br><br>place_holder _1;<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;"> _tmain(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> argc, _TCHAR</span><span style="color: #000000;">*</span><span style="color: #000000;"> argv[])<br>{<br>    vector</span><span style="color: #000000;"><</span><span style="color: #0000ff;">int</span><span style="color: #000000;">></span><span style="color: #000000;"> v;<br>    v.push_back(</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br>    v.push_back(</span><span style="color: #000000;">2</span><span style="color: #000000;">);<br>    v.push_back(</span><span style="color: #000000;">3</span><span style="color: #000000;">);<br><br>    </span><span style="color: #008000;">//</span><span style="color: #008000;">for_each(v.begin(), v.end(), op());    </span><span style="color: #008000;">//</span><span style="color: #008000;">鍘熸牸寮忓姝?/span><span style="color: #008000;"><br></span><span style="color: #000000;">    for_each(v.begin(), v.end(), _1</span><span style="color: #000000;">=</span><span style="color: #000000;">2</span><span style="color: #000000;">);    </span><span style="color: #008000;">//</span><span style="color: #008000;">_1=2鏄竴涓豢鍑芥暟,閫氳繃閲嶈澆=瀹炵幇</span><span style="color: #008000;"><br></span><span style="color: #000000;"><br>    </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>}</span></div> <br><br> <img src ="http://m.shnenglu.com/bangle/aggbug/142527.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/bangle/" target="_blank">榛戣壊澶╀嬌</a> 2011-03-22 23:47 <a href="http://m.shnenglu.com/bangle/archive/2011/03/22/142527.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>YUV鏍煎紡璇︾粏瑙i噴涓嶧FMPEG鐨勫叧緋?/title><link>http://m.shnenglu.com/bangle/archive/2009/06/08/87070.html</link><dc:creator>榛戣壊澶╀嬌</dc:creator><author>榛戣壊澶╀嬌</author><pubDate>Mon, 08 Jun 2009 07:23:00 GMT</pubDate><guid>http://m.shnenglu.com/bangle/archive/2009/06/08/87070.html</guid><wfw:comment>http://m.shnenglu.com/bangle/comments/87070.html</wfw:comment><comments>http://m.shnenglu.com/bangle/archive/2009/06/08/87070.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/bangle/comments/commentRss/87070.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/bangle/services/trackbacks/87070.html</trackback:ping><description><![CDATA[<div class="9f9bnl9" id=art width="100%"> <p align=left><strong><span>YUV</span></strong><strong><span>涓昏鐨勯噰鏍鋒牸寮?/span></strong><strong><span> </span></strong></p> <p align=left><span>涓昏鐨勯噰鏍鋒牸寮忔湁</span><span>YCbCr 4:2:0</span><span>銆?/span><span>YCbCr 4:2:2</span><span>銆?/span><span>YCbCr 4:1:1</span><span>鍜?/span><span> YCbCr 4:4:4</span><span>銆傚叾涓?/span><span>YCbCr 4:1:1 </span><span>姣旇緝甯哥敤錛屽叾鍚箟涓猴細姣忎釜鐐逛繚瀛樹竴涓?/span><span> 8bit </span><span>鐨勪寒搴﹀?/span><span>(</span><span>涔熷氨鏄?/span><span>Y</span><span>鍊?/span><span>), </span><span>姣?/span><span> 2x2 </span><span>涓偣淇濆瓨涓涓?/span><span> Cr </span><span>鍜?/span><span>Cb </span><span>鍊?/span><span>, </span><span>鍥懼儚鍦ㄨ倝鐪間腑鐨勬劅瑙変笉浼氳搗澶ぇ鐨勫彉鍖栥傛墍浠?/span><span>, </span><span>鍘熸潵鐢?/span><span> RGB(R,G,B </span><span>閮芥槸</span><span> 8bit unsigned) </span><span>妯″瀷</span><span>, 4 </span><span>涓偣闇瑕?/span><span> 8x3=24 bites</span><span>錛堝涓嬪浘絎竴涓浘錛?/span><span>. </span><span>鑰岀幇鍦ㄤ粎闇瑕?/span><span> 8+(8/4)+(8/4)=12bites, </span><span>騫沖潎姣忎釜鐐瑰崰</span><span>12bites(</span><span>濡備笅鍥劇浜屼釜鍥?/span><span>)</span><span>銆傝繖鏍峰氨鎶婂浘鍍忕殑鏁版嵁鍘嬬緝浜嗕竴鍗娿?/span><span> </span></p> <p align=left><strong><span>    </span></strong><strong><span>涓婅竟浠呯粰鍑轟簡鐞嗚涓婄殑紺轟緥錛屽湪瀹為檯鏁版嵁瀛樺偍涓槸鏈夊彲鑳芥槸涓嶅悓鐨勶紝涓嬮潰緇欏嚭鍑犵鍏蜂綋鐨勫瓨鍌ㄥ艦寮忥細</span></strong><strong><span> </span></strong></p> <p align=left><span>錛?/span><span>1</span><span>錛?/span><span>    <strong>YUV 4:4:4</strong> </span></p> <p align=left><span>YUV</span><span>涓変釜淇¢亾鐨勬娊鏍風巼鐩稿悓錛屽洜姝ゅ湪鐢熸垚鐨勫浘鍍忛噷錛屾瘡涓薄绱犵殑涓変釜鍒嗛噺淇℃伅瀹屾暣錛堟瘡涓垎閲忛氬父</span><span>8</span><span>姣旂壒錛夛紝緇忚繃</span><span>8</span><span>姣旂壒閲忓寲涔嬪悗錛屾湭緇忓帇緙╃殑姣忎釜鍍忕礌鍗犵敤</span><span>3</span><span>涓瓧鑺傘?/span><span> </span></p> <p align=left><span>涓嬮潰鐨勫洓涓儚绱犱負</span><span>: [Y<sub>0</sub> U<sub>0</sub> V<sub>0</sub>] [Y<sub>1</sub> U<sub>1</sub> V<sub>1</sub>] [Y<sub>2</sub> U<sub>2</sub> V<sub>2</sub>] [Y<sub>3</sub> U<sub>3</sub> V<sub>3</sub>] </span></p> <p align=left><span>瀛樻斁鐨勭爜嫻佷負<span>: Y<sub>0</sub> U<sub>0</sub> V<sub>0</sub> Y<sub>1</sub> U<sub>1</sub> V<sub>1</sub> Y<sub>2</sub> U<sub>2</sub> V<sub>2</sub> Y<sub>3</sub> U<sub>3</sub> V<sub>3</sub></span></span></p> <p align=left><strong><span>錛?span>2</span>錛?span>   YUV 4:2:2</span></span></strong></p> <p align=left><span>      </span><span>姣忎釜鑹插樊淇¢亾鐨勬娊鏍風巼鏄寒搴︿俊閬撶殑涓鍗婏紝鎵浠ユ按騫蟲柟鍚戠殑鑹插害鎶芥牱鐜囧彧鏄?span>4:4:4</span>鐨勪竴鍗娿傚闈炲帇緙╃殑<span>8</span>姣旂壒閲忓寲鐨勫浘鍍忔潵璇達紝姣忎釜鐢變袱涓按騫蟲柟鍚戠浉閭葷殑鍍忕礌緇勬垚鐨勫畯鍍忕礌闇瑕佸崰鐢?span>4</span>瀛楄妭鍐呭瓨銆?/span></p> <p align=left><span>涓嬮潰鐨勫洓涓儚绱犱負</span><span>: [Y<sub>0</sub> U<sub>0</sub> V<sub>0</sub>] [Y<sub>1</sub> U<sub>1</sub> V<sub>1</sub>] [Y<sub>2</sub> U<sub>2</sub> V<sub>2</sub>] [Y<sub>3</sub> U<sub>3</sub> V<sub>3</sub>] </span></p> <p align=left><span>瀛樻斁鐨勭爜嫻佷負<span>: Y<sub>0</sub> U<sub>0</sub> Y<sub>1</sub> V<sub>1</sub> Y<sub>2</sub> U<sub>2</sub> Y<sub>3</sub> V<sub>3</sub></span></span></p> <p align=left><span>鏄犲皠鍑哄儚绱犵偣涓猴細<span>[Y<sub>0</sub> U<sub>0</sub> V<sub>1</sub>] [Y<sub>1</sub> U<sub>0</sub> V<sub>1</sub>] [Y<sub>2</sub> U<sub>2</sub> V<sub>3</sub>] [Y<sub>3</sub> U<sub>2</sub> V<sub>3</sub>]<strong></strong></span></span></p> <p align=left><strong><span>錛?span>3</span>錛?span>   YUV 4:1:1</span></span></strong></p> <p align=left><span>4:1:1</span><span>鐨勮壊搴︽娊鏍鳳紝鏄湪姘村鉤鏂瑰悜涓婂鑹插害榪涜<span>4:1</span>鎶芥牱銆傚浜庝綆绔敤鎴峰拰娑堣垂綾諱駭鍝佽繖浠嶇劧鏄彲浠ユ帴鍙楃殑銆傚闈炲帇緙╃殑<span>8</span>姣旂壒閲忓寲鐨勮棰戞潵璇達紝姣忎釜鐢?span>4</span>涓按騫蟲柟鍚戠浉閭葷殑鍍忕礌緇勬垚鐨勫畯鍍忕礌闇瑕佸崰鐢?span>6</span>瀛楄妭鍐呭瓨<strong></strong></span></p> <p align=left><span>涓嬮潰鐨勫洓涓儚绱犱負</span><span>: [Y<sub>0</sub> U<sub>0</sub> V<sub>0</sub>] [Y<sub>1</sub> U<sub>1</sub> V<sub>1</sub>] [Y<sub>2</sub> U<sub>2</sub> V<sub>2</sub>] [Y<sub>3</sub> U<sub>3</sub> V<sub>3</sub>] </span></p> <p align=left><span>瀛樻斁鐨勭爜嫻佷負<span>: Y<sub>0</sub> U<sub>0</sub> Y<sub>1</sub> Y<sub>2</sub> V<sub>2</sub> Y<sub>3</sub></span></span></p> <p align=left><span>鏄犲皠鍑哄儚绱犵偣涓猴細<span>[Y<sub>0</sub> U<sub>0</sub> V<sub>2</sub>] [Y<sub>1</sub> U<sub>0</sub> V<sub>2</sub>] [Y<sub>2</sub> U<sub>0</sub> V<sub>2</sub>] [Y<sub>3</sub> U<sub>0</sub> V<sub>2</sub>]</span></span></p> <p align=left><strong><span>錛?span>4</span>錛?span>YUV4:2:0</span></span></strong></p> <p align=left><span>     4:2:0</span><span>騫朵笉鎰忓懗鐫鍙湁<span>Y,Cb</span>鑰屾病鏈?span>Cr</span>鍒嗛噺銆傚畠鎸囧緱鏄姣忚鎵弿綰挎潵璇達紝鍙湁涓縐嶈壊搴﹀垎閲忎互<span>2:1</span>鐨勬娊鏍風巼瀛樺偍銆傝繘琛岄殧琛屾壂鎻忥紝鐩擱偦鐨勬壂鎻忚瀛樺偍涓嶅悓鐨勮壊搴﹀垎閲忥紝涔熷氨鏄錛屽鏋滀竴琛屾槸<span>4:2:0</span>鐨勮瘽錛屼笅涓琛屽氨鏄?span>4:0:2</span>錛屽啀涓嬩竴琛屾槸<span>4:2:0...</span>浠ユ綾繪帹銆傚姣忎釜鑹插害鍒嗛噺鏉ヨ錛屾按騫蟲柟鍚戝拰绔栫洿鏂瑰悜鐨勬娊鏍風巼閮芥槸<span>2:1</span>錛屾墍浠ュ彲浠ヨ鑹插害鐨勬娊鏍風巼鏄?span>4:1</span>銆傚闈炲帇緙╃殑<span>8</span>姣旂壒閲忓寲鐨勮棰戞潵璇達紝姣忎釜鐢?span>2x2</span>涓?span>2</span>琛?span>2</span>鍒楃浉閭葷殑鍍忕礌緇勬垚鐨勫畯鍍忕礌闇瑕佸崰鐢?span>6</span>瀛楄妭鍐呭瓨銆?/span></p> <p align=left><span>涓嬮潰鍏釜鍍忕礌涓猴細<span>[Y<sub>0</sub> U<sub>0</sub> V<sub>0</sub>] [Y<sub>1</sub> U<sub>1</sub> V<sub>1</sub>] [Y<sub>2</sub> U<sub>2</sub> V<sub>2</sub>] [Y<sub>3</sub> U<sub>3</sub> V<sub>3</sub>]</span></span></p> <p align=left><span>                [Y<sub>5</sub> U<sub>5</sub> V<sub>5</sub>] [Y<sub>6</sub> U<sub>6</sub> V<sub>6</sub>] [Y<sub>7</sub>U<sub>7</sub> V<sub>7</sub>] [Y<sub>8</sub> U<sub>8</sub> V<sub>8</sub>]</span></p> <p align=left><span>瀛樻斁鐨勭爜嫻佷負錛?span>Y<sub>0</sub> U<sub>0</sub> Y<sub>1</sub> Y<sub>2</sub> U<sub>2</sub> Y<sub>3</sub></span></span></p> <p align=left><sub><span>                     </span></sub><span>Y<sub>5 </sub>V<sub>5</sub> Y<sub>6</sub> Y<sub>7</sub> V<sub>7</sub> Y<sub>8</sub></span></p> <p align=left><span>鏄犲皠鍑虹殑鍍忕礌鐐逛負錛?span>[Y<sub>0</sub> U<sub>0</sub> V<sub>5</sub>] [Y<sub>1</sub> U<sub>0</sub> V<sub>5</sub>] [Y<sub>2</sub> U<sub>2</sub> V<sub>7</sub>] [Y<sub>3</sub> U<sub>2</sub> V<sub>7</sub>]</span></span></p> <span>                  [Y<sub>5</sub> U<sub>0</sub> V<sub>5</sub>] [Y<sub>6</sub> U<sub>0</sub> V<sub>5</sub>] [Y<sub>7</sub>U<sub>2</sub> V<sub>7</sub>] [Y<sub>8</sub> U<sub>2</sub> V<sub>7</sub>]</span> <br><br> <p>瀵瑰簲AVPicture閲岄潰鏈塪ata[4]鍜宭inesize[4]鍏朵腑data鏄竴涓寚鍚戞寚閽堢殑鎸囬拡錛堜簩綰с佷簩緇存寚閽堬級錛屼篃灝辨槸鎸囧悜瑙嗛鏁版嵁緙撳啿鍖虹殑棣栧湴鍧錛岃宒ata[0]~data[3]鏄竴綰ф寚閽堬紝鍙互鐢ㄥ涓嬬殑鍥炬潵琛ㄧず錛?</p> <p>data -->xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>        ^                ^              ^<br>        |                |              |<br>         data[0]      data[1]         data[2]<br></p> <p>姣斿璇達紝褰損ix_fmt=PIX_FMT_YUV420P鏃訛紝data涓殑鏁版嵁鏄寜鐓UV鐨勬牸寮忓瓨鍌ㄧ殑錛屼篃灝辨槸錛?</p> <pre>data -->YYYYYYYYYYYYYYUUUUUUUUUUUUUVVVVVVVVVVVV ^ ^ ^ | | | data[0] data[1] data[2] </pre> <p>linesize鏄寚瀵瑰簲浜庢瘡涓琛岀殑澶у皬錛屼負浠涔堥渶瑕佽繖涓彉閲忥紝鏄洜涓哄湪YUV鏍煎紡鍜孯GB鏍煎紡鏃訛紝姣忚鐨勫ぇ灝忎笉涓瀹氱瓑浜庡浘鍍忕殑瀹藉害錛屽浜嶳GB鏍煎紡杈撳嚭鏃?鍙湁涓涓氶亾(bgrbgrbgr......)鍙敤錛屽嵆linesize[0],鍜宒ata[0],so RGB24 : data[0] = packet rgb//bgrbgrbgr...... </p> <pre>linesize[0] = width*3 </pre> <p>鍏朵粬鐨勫data[1][2][3]涓巐inesize[1][2][3]鏃犱換浣曟剰涔? </p> <p>鑰屽浜庯脊錛碉級鏍煎紡杈撳嚭鏃訛紝鏈変笁涓氶亾鍙敤錛屽嵆data[0][1][2],涓巐inesize[0][1][2]錛岃寉uv鏍煎紡瀵逛簬榪愬姩浼拌鏃訛紝闇瑕佸~鍏卲adding(right, bottom),鏁咃細 </p> <pre>linesize=width+padding size(16+16). ///////////////////////////////////////////////////////////////////////////////////////</pre> <pre><br>   case PIX_FMT_YUV420P:<br>   case PIX_FMT_YUVJ420P:<br>   case PIX_FMT_RGB555:<br>    if (PIC_DIRECTION_0 == m_dwFilpPicDirection)<br>    {<br>     m_pYuvFrame->data [0] += m_pYuvFrame->linesize[0] *  m_pVCodecContext->height;<br>     //鍥犱負鏄殧琛屾壂鎻廢涓嶸鍙湁楂樺害鐨勪竴鍗?br>     m_pYuvFrame->data [1] += m_pYuvFrame->linesize[1] *  m_pVCodecContext->height/2;<br>     m_pYuvFrame->data [2] += m_pYuvFrame->linesize[2] *  m_pVCodecContext->height/2;<br>     m_pYuvFrame->linesize[0] = -m_pYuvFrame->linesize[0];<br>     m_pYuvFrame->linesize[1] = -m_pYuvFrame->linesize[1];<br>     m_pYuvFrame->linesize[2] = -m_pYuvFrame->linesize[2];<br>    }<br>    <br>    break;<br>   case PIX_FMT_YUVJ422P:<br>   case PIX_FMT_YUV422P:<br>   case PIX_FMT_YUYVJ422:<br>   case PIX_FMT_YUV411P:<br>   case PIX_FMT_YUYV422:  <br>    if (PIC_DIRECTION_0 == m_dwFilpPicDirection)<br>    {<br>     m_pYuvFrame->data [0] += m_pYuvFrame->linesize[0] *  m_pVCodecContext->height;<br>     m_pYuvFrame->data [1] += m_pYuvFrame->linesize[1] *  m_pVCodecContext->height;<br>     m_pYuvFrame->data [2] += m_pYuvFrame->linesize[2] *  m_pVCodecContext->height;<br>     m_pYuvFrame->linesize[0] = -m_pYuvFrame->linesize[0];<br>     m_pYuvFrame->linesize[1] = -m_pYuvFrame->linesize[1];<br>     m_pYuvFrame->linesize[2] = -m_pYuvFrame->linesize[2];<br>    }<br>    break;<br>   }<br>鍦‵FMPEG涓漿鎹GB鏃墮『渚塊鍊掑浘鍍忕殑鏂瑰悜綆楁硶<br></pre> </div> <img src ="http://m.shnenglu.com/bangle/aggbug/87070.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/bangle/" target="_blank">榛戣壊澶╀嬌</a> 2009-06-08 15:23 <a href="http://m.shnenglu.com/bangle/archive/2009/06/08/87070.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>CEventSocket Beta 1.0http://m.shnenglu.com/bangle/archive/2008/12/23/70144.html榛戣壊澶╀嬌榛戣壊澶╀嬌Tue, 23 Dec 2008 05:12:00 GMThttp://m.shnenglu.com/bangle/archive/2008/12/23/70144.htmlhttp://m.shnenglu.com/bangle/comments/70144.htmlhttp://m.shnenglu.com/bangle/archive/2008/12/23/70144.html#Feedback0http://m.shnenglu.com/bangle/comments/commentRss/70144.htmlhttp://m.shnenglu.com/bangle/services/trackbacks/70144.html闃呰鍏ㄦ枃

]]>
瀛楃涓插瓧涓茬殑鏌ユ壘涓庡瓧絎︿覆鍒嗗壊http://m.shnenglu.com/bangle/archive/2008/12/16/69589.html榛戣壊澶╀嬌榛戣壊澶╀嬌Tue, 16 Dec 2008 09:34:00 GMThttp://m.shnenglu.com/bangle/archive/2008/12/16/69589.htmlhttp://m.shnenglu.com/bangle/comments/69589.htmlhttp://m.shnenglu.com/bangle/archive/2008/12/16/69589.html#Feedback0http://m.shnenglu.com/bangle/comments/commentRss/69589.htmlhttp://m.shnenglu.com/bangle/services/trackbacks/69589.htmlvoid ExtractString(CStringArray& arr, const CString strSrc, const TCHAR sep = '|')
{
    CString str(strSrc);
    str.TrimLeft(); 
    str.TrimRight();

    
if(str.IsEmpty())
        
return;

    
int pos = str.Find(sep);
    
while (pos != -1)
    
{
        arr.Add(str.Left(pos));
        str 
= str.Mid(pos + 1);
        pos 
= str.Find(sep);
    }

    
if (strcmp(str, _T("")) != 0)
        arr.Add(str);
}



int StrIndex(const char *str, const char *substr)
{

    
int nEnd = strlen(str) - strlen(substr);  /* 璁$畻緇撴潫浣嶇疆   */
    
    
if ( nEnd > 0 )                      /* 瀛愬瓧絎︿覆灝忎簬瀛楃涓?nbsp;*/
    
{
        
for (int i = 0; i <= nEnd; i++ )
            
for (int j = i; str[j] == substr[j-i]; j++ )
                
if ( substr[j-i+1== '\0' ) /* 瀛愬瓧絎︿覆瀛楃粨鏉?nbsp;  */
                    
return i + 1;           
    }


    
return -1;
}


]]>
涓ょ鍗曚歡妯″紡http://m.shnenglu.com/bangle/archive/2008/11/11/66617.html榛戣壊澶╀嬌榛戣壊澶╀嬌Tue, 11 Nov 2008 08:58:00 GMThttp://m.shnenglu.com/bangle/archive/2008/11/11/66617.htmlhttp://m.shnenglu.com/bangle/comments/66617.htmlhttp://m.shnenglu.com/bangle/archive/2008/11/11/66617.html#Feedback0http://m.shnenglu.com/bangle/comments/commentRss/66617.htmlhttp://m.shnenglu.com/bangle/services/trackbacks/66617.html//閫傚悎浜庢瘮杈冨皬鐨勫璞?/span>
class CSingletonObj
{
public:
    
virtual ~CSingletonObj(void); //蹇呴』涓哄叕鏈?/span>
    static CSingletonObj& Instance(void{return m_Instance;}

protected:
    CSingletonObj(
void); //闃叉鏋勯犱笌鎷瘋礉
    CSingletonObj(const CSingletonObj&);

private:
    
static CSingletonObj m_Instance;
}
;
#include <memory>

using namespace std;

template<class  T>
class Singleton
{
public:
static T* GetInstance();

protected:
Singleton(void) {}
~Singleton(void) {}
Singleton(const Singleton&) {}
Singleton & operator = (const Singleton&) {}

private:
static auto_ptr<T> _instance;
};


template <class T>
auto_ptr<T> Singleton<T>::_instance;

template <class T>
inline T* Singleton<T>::GetInstance()
{
if( 0 == _instance.get())
{
// 鍔犲叆涓寸晫鍖猴紝鍙疄鐜板綰跨▼瀹夊叏
_instance.reset ( new T);
}

return _instance.get();
}
//////////////////////////////////////////////////////////////////////////
//浣跨敤
class Test : public Singleton<Test> 
public: 
void foo(); 
private: 
Test(); 
~Test(); 
friend class Singleton<Test>; 
}; 


]]>
memcpy鐨凚UGhttp://m.shnenglu.com/bangle/archive/2008/10/15/64008.html榛戣壊澶╀嬌榛戣壊澶╀嬌Wed, 15 Oct 2008 02:31:00 GMThttp://m.shnenglu.com/bangle/archive/2008/10/15/64008.htmlhttp://m.shnenglu.com/bangle/comments/64008.htmlhttp://m.shnenglu.com/bangle/archive/2008/10/15/64008.html#Feedback5http://m.shnenglu.com/bangle/comments/commentRss/64008.htmlhttp://m.shnenglu.com/bangle/services/trackbacks/64008.html 濡傛灉鍘熷璧勬枡source鍜岀洰鐨勫崟鍏冩牸destination錛堢殑鍦板潃錛夐噸澶嶄簡銆傚湪閲嶅鍖哄煙鐨勫師濮媠ource鐨勫瓧鑺傝瑕嗙洊浠ュ墠錛宮emcpy涓嶈兘淇濊瘉榪欎簺鍖哄煙琚嫹璐濄備嬌鐢╩emove鏉ュ鐞嗛噸澶嶇殑鍖哄煙銆?nbsp; 闃呰鍏ㄦ枃

]]>
灝介噺浣跨敤C++椋庢牸鐨勭被鍨嬭漿鎹?/title><link>http://m.shnenglu.com/bangle/archive/2008/09/28/62984.html</link><dc:creator>榛戣壊澶╀嬌</dc:creator><author>榛戣壊澶╀嬌</author><pubDate>Sun, 28 Sep 2008 07:12:00 GMT</pubDate><guid>http://m.shnenglu.com/bangle/archive/2008/09/28/62984.html</guid><wfw:comment>http://m.shnenglu.com/bangle/comments/62984.html</wfw:comment><comments>http://m.shnenglu.com/bangle/archive/2008/09/28/62984.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/bangle/comments/commentRss/62984.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/bangle/services/trackbacks/62984.html</trackback:ping><description><![CDATA[<span style="font-family: 錕斤拷錕斤拷; font-size: 12px; ">  浠旂粏鎯蟲兂鍦頒綅鍗戣幢鐨勭被鍨嬭漿鎹㈠姛鑳斤紙cast錛夛紝鍏跺湪紼嬪簭璁捐涓殑鍦頒綅灝辮薄goto璇彞涓鏍蜂護浜洪剻瑙嗐備絾鏄畠榪樹笉鏄棤娉曚護浜哄繊鍙楋紝鍥犱負褰撳湪鏌愪簺绱ц鐨勫叧澶達紝綾誨瀷杞崲榪樻槸蹇呴渶鐨勶紝榪欐椂瀹冩槸涓涓繀闇鍝併?  <br>  涓嶈繃C椋庢牸鐨勭被鍨嬭漿鎹㈠茍涓嶄唬琛ㄦ墍鏈夌殑綾誨瀷杞崲鍔熻兘銆?  <br>  涓鏉ュ畠浠繃浜庣矖椴侊紝鑳藉厑璁鎬綘鍦ㄤ換浣曠被鍨嬩箣闂磋繘琛岃漿鎹€備笉榪囧鏋滆榪涜鏇寸簿紜殑綾誨瀷杞崲錛岃繖浼氭槸涓涓紭鐐廣傚湪榪欎簺綾誨瀷杞崲涓瓨鍦ㄧ潃宸ㄥぇ鐨勪笉鍚岋紝渚嬪鎶婁竴涓寚鍚慶onst瀵硅薄鐨勬寚閽堬紙pointer-to-const-object錛夎漿鎹㈡垚鎸囧悜闈瀋onst瀵硅薄鐨勬寚閽堬紙pointer-to-non-const-object錛?鍗充竴涓粎浠呭幓闄onst鐨勭被鍨嬭漿鎹?錛屾妸涓涓寚鍚戝熀綾葷殑鎸囬拡杞崲鎴愭寚鍚戝瓙綾葷殑鎸囬拡錛堝嵆瀹屽叏鏀瑰彉瀵硅薄綾誨瀷錛夈備紶緇熺殑C椋庢牸鐨勭被鍨嬭漿鎹笉瀵逛笂榪頒袱縐嶈漿鎹㈣繘琛屽尯鍒嗐傦紙榪欎竴鐐逛篃涓嶄護浜烘儕璁訛紝鍥犱負C椋庢牸鐨勭被鍨嬭漿鎹㈡槸涓篊璇█璁捐鐨勶紝鑰屼笉鏄負C++璇█璁捐鐨勶級銆?  <br>  浜屾潵C椋庢牸鐨勭被鍨嬭漿鎹㈠湪紼嬪簭璇彞涓毦浠ヨ瘑鍒傚湪璇硶涓婏紝綾誨瀷杞崲鐢卞渾鎷彿鍜屾爣璇嗙緇勬垚錛岃岃繖浜涘彲浠ョ敤鍦–錛嬶紜涓殑浠諱綍鍦版柟銆傝繖浣垮緱鍥炵瓟璞¤繖鏍蜂竴涓渶鍩烘湰鐨勬湁鍏崇被鍨嬭漿鎹㈢殑闂鍙樺緱寰堝洶闅撅細“鍦ㄨ繖涓▼搴忎腑鏄惁浣跨敤浜嗙被鍨嬭漿鎹紵”銆傝繖鏄洜涓轟漢宸ラ槄璇誨緢鍙兘蹇界暐浜嗙被鍨嬭漿鎹㈢殑璇彞錛岃屽埄鐢ㄨ薄grep鐨勫伐鍏風▼搴忎篃涓嶈兘浠庤鍙ユ瀯鎴愪笂鍖哄垎鍑哄畠浠潵銆?  <br>  C++閫氳繃寮曡繘鍥涗釜鏂扮殑綾誨瀷杞崲鎿嶄綔絎﹀厠鏈嶄簡C椋庢牸綾誨瀷杞崲鐨勭己鐐癸紝榪欏洓涓搷浣滅鏄?   static_cast,   const_cast,   dynamic_cast,   鍜宺einterpret_cast銆傚湪澶у鏁版儏鍐典笅錛屽浜庤繖浜涙搷浣滅浣犲彧闇瑕佺煡閬撳師鏉ヤ綘涔犳儻浜庤繖鏍峰啓錛?  <br>  (type)   expression   <br>  鑰岀幇鍦ㄤ綘鎬誨簲璇ヨ繖鏍峰啓錛?  <br>  static_cast<type>(expression)   <br>  渚嬪錛屽亣璁句綘鎯蟲妸涓涓猧nt杞崲鎴恉ouble錛屼互渚胯鍖呭惈int綾誨瀷鍙橀噺鐨勮〃杈懼紡浜х敓鍑烘誕鐐規暟鍊肩殑緇撴灉銆傚鏋滅敤C椋庢牸鐨勭被鍨嬭漿鎹紝浣犺兘榪欐牱鍐欙細   <br>  int   firstNumber,   secondNumber;   <br>  ...   <br>  double   result   =   ((double)firstNumber)/secondNumber錛?  <br>  濡傛灉鐢ㄤ笂榪版柊鐨勭被鍨嬭漿鎹㈡柟娉曪紝浣犲簲璇ヨ繖鏍峰啓錛?  <br>  double   result   =   static_cast<double>(firstNumber)/secondNumber;   <br>  榪欐牱鐨勭被鍨嬭漿鎹笉璁烘槸瀵逛漢宸ヨ繕鏄紼嬪簭閮藉緢瀹規槗璇嗗埆銆?  <br>  static_cast鍦ㄥ姛鑳戒笂鍩烘湰涓婁笌C椋庢牸鐨勭被鍨嬭漿鎹竴鏍峰己澶э紝鍚箟涔熶竴鏍楓傚畠涔熸湁鍔熻兘涓婇檺鍒躲備緥濡傦紝浣犱笉鑳界敤static_cast璞$敤C椋庢牸鐨勭被鍨嬭漿鎹竴鏍鋒妸struct杞崲鎴恑nt綾誨瀷鎴栬呮妸double綾誨瀷杞崲鎴愭寚閽堢被鍨嬶紝鍙﹀錛宻tatic_cast涓嶈兘浠庤〃杈懼紡涓幓闄onst灞炴э紝鍥犱負鍙︿竴涓柊鐨勭被鍨嬭漿鎹㈡搷浣滅const_cast鏈夎繖鏍風殑鍔熻兘銆? <br>  鍏跺畠鏂扮殑C++綾誨瀷杞崲鎿嶄綔絎﹁鐢ㄥ湪闇瑕佹洿澶氶檺鍒剁殑鍦版柟銆俢onst_cast鐢ㄤ簬綾誨瀷杞崲鎺夎〃杈懼紡鐨刢onst鎴杤olatileness灞炴с傞氳繃浣跨敤const_cast錛屼綘鍚戜漢浠拰緙栬瘧鍣ㄥ己璋冧綘閫氳繃綾誨瀷杞崲鎯沖仛鐨勫彧鏄敼鍙樹竴浜涗笢瑗跨殑constness鎴栬?  volatileness灞炴с傝繖涓惈涔夎緙栬瘧鍣ㄦ墍綰︽潫銆傚鏋滀綘璇曞浘浣跨敤const_cast鏉ュ畬鎴愪慨鏀筩onstness   鎴栬卾olatileness灞炴т箣澶栫殑浜嬫儏錛屼綘鐨勭被鍨嬭漿鎹㈠皢琚嫆緇濄備笅闈㈡槸涓浜涗緥瀛愶細   <br>  class   Widget   {   ...   };   <br>  class   SpecialWidget:   public   Widget   {   ...   };   <br>  void   update(SpecialWidget   *psw);   <br>  SpecialWidget   sw;                                 //   sw   鏄竴涓潪const   瀵硅薄銆?  <br>  const   SpecialWidget&   csw   =   sw;       //   csw   鏄痵w鐨勪竴涓紩鐢?  <br>                                                                  //   瀹冩槸涓涓猚onst   瀵硅薄     <br>  update(&csw);     //   閿欒!涓嶈兘浼犻掍竴涓猚onst   SpecialWidget*   鍙橀噺   <br>                                //   緇欎竴涓鐞哠pecialWidget*綾誨瀷鍙橀噺鐨勫嚱鏁?    <br>  update(const_cast<SpecialWidget*>(&csw));   <br>  //   姝g‘錛宑sw鐨刢onst琚樉紺哄湴杞崲鎺夛紙   <br>  //   csw鍜宻w涓や釜鍙橀噺鍊煎湪update   <br>  //鍑芥暟涓兘琚洿鏂幫級     <br>  update((SpecialWidget*)&csw);   <br>                                                    //   鍚屼笂錛屼絾鐢ㄤ簡涓涓洿闅捐瘑鍒?  <br>                                                    //鐨凜椋庢牸鐨勭被鍨嬭漿鎹?  <br>  Widget   *pw   =   new   SpecialWidget;     <br>  update(pw);                   //   閿欒錛乸w鐨勭被鍨嬫槸Widget*錛屼絾鏄?  <br>                                          //   update鍑芥暟澶勭悊鐨勬槸SpecialWidget*綾誨瀷     <br>  update(const_cast<SpecialWidget*>(pw));   <br>                                          //   閿欒錛乧onst_cast浠呰兘琚敤鍦ㄥ獎鍝?  <br>                                          //   constness   or   volatileness鐨勫湴鏂逛笂銆?   <br>                                          //   涓嶈兘鐢ㄥ湪鍚戠戶鎵垮瓙綾昏繘琛岀被鍨嬭漿鎹€?  <br>  鍒扮洰鍓嶄負姝紝const_cast鏈鏅氱殑鐢ㄩ斿氨鏄漿鎹㈡帀瀵硅薄鐨刢onst灞炴с?  <br>  絎簩縐嶇壒孌婄殑綾誨瀷杞崲絎︽槸dynamic_cast錛屽畠琚敤浜庡畨鍏ㄥ湴娌跨潃綾葷殑緇ф壙鍏崇郴鍚戜笅榪涜綾誨瀷杞崲銆傝繖灝辨槸璇達紝浣犺兘鐢╠ynamic_cast鎶婃寚鍚戝熀綾葷殑鎸囬拡鎴栧紩鐢ㄨ漿鎹㈡垚鎸囧悜鍏舵淳鐢熺被鎴栧叾鍏勫紵綾葷殑鎸囬拡鎴栧紩鐢紝鑰屼笖浣犺兘鐭ラ亾杞崲鏄惁鎴愬姛銆傚け璐ョ殑杞崲灝嗚繑鍥炵┖鎸囬拡錛堝綋瀵規寚閽堣繘琛岀被鍨嬭漿鎹㈡椂錛夋垨鑰呮姏鍑哄紓甯革紙褰撳寮曠敤榪涜綾誨瀷杞崲鏃訛級錛?  <br>  Widget   *pw;   <br>  ...   <br>  update(dynamic_cast<SpecialWidget*>(pw));   <br>  //   姝g‘錛屼紶閫掔粰update鍑芥暟涓涓寚閽?  <br>  //   鏄寚鍚戝彉閲忕被鍨嬩負SpecialWidget鐨刾w鐨勬寚閽?  <br>  //   濡傛灉pw紜疄鎸囧悜涓涓璞?   <br>  //   鍚﹀垯浼犻掕繃鍘葷殑灝嗕嬌絀烘寚閽堛?  <br>  void   updateViaRef(SpecialWidget&   rsw);   <br>  updateViaRef(dynamic_cast<SpecialWidget&>(*pw));   <br>                                                    //姝g‘銆?  浼犻掔粰updateViaRef鍑芥暟   <br>                                                    //   SpecialWidget   pw   鎸囬拡錛屽鏋減w     <br>                                                    //   紜疄鎸囧悜浜嗘煇涓璞?  <br>                                                    //   鍚﹀垯灝嗘姏鍑哄紓甯?  <br>  dynamic_casts鍦ㄥ府鍔╀綘嫻忚緇ф壙灞傛涓婃槸鏈夐檺鍒剁殑銆傚畠涓嶈兘琚敤浜庢病鏈夎櫄鍑芥暟鐨勭被鍨嬩笂錛屽洜涓轟粬瑕佸緱鍒扮被鐨勮繍琛屾椂淇℃伅錛岃繖涓淇濆瓨浜嶸tablez涓紝涔熶笉鑳界敤瀹冩潵杞崲鎺塩onstness錛?  <br>  int   firstNumber,   secondNumber;   <br>  ...   <br>  double   result   =   dynamic_cast<double>(firstNumber)/secondNumber;   <br>                                                    //   閿欒錛佹病鏈夌戶鎵垮叧緋?  <br>  const   SpecialWidget   sw;   <br>  ...   <br>  update(dynamic_cast<SpecialWidget*>(&sw));   <br>                                                    //   閿欒!   dynamic_cast涓嶈兘杞崲   <br>                                                    //   鎺塩onst銆?  <br>  濡備綘鎯沖湪娌℃湁緇ф壙鍏崇郴鐨勭被鍨嬩腑榪涜杞崲錛屼綘鍙兘鎯沖埌static_cast銆傚鏋滄槸涓轟簡鍘婚櫎const錛屼綘鎬誨緱鐢╟onst_cast銆?  <br>  榪欏洓涓被鍨嬭漿鎹㈢涓殑鏈鍚庝竴涓槸reinterpret_cast銆備嬌鐢ㄨ繖涓搷浣滅鐨勭被鍨嬭漿鎹紝鍏剁殑杞崲緇撴灉鍑犱箮閮芥槸鎵ц鏈熷畾涔夛紙implementation-defined錛夈傚洜姝わ紝浣跨敤reinterpret_casts鐨勪唬鐮佸緢闅劇Щ妞嶃?  <br>  reinterpret_casts鐨勬渶鏅氱殑鐢ㄩ斿氨鏄湪鍑芥暟鎸囬拡綾誨瀷涔嬮棿榪涜杞崲銆備緥濡傦紝鍋囪浣犳湁涓涓嚱鏁版寚閽堟暟緇勶細  <br>  typedef   void   (*FuncPtr)();             //   FuncPtr   is   涓涓寚鍚戝嚱鏁?  <br>                                                                  //   鐨勬寚閽堬紝璇ュ嚱鏁版病鏈夊弬鏁?  <br>  //   榪斿洖鍊肩被鍨嬩負void   <br>  FuncPtr   funcPtrArray[10];               //   funcPtrArray   鏄竴涓兘瀹圭撼   <br>                                                                  //   10涓狥uncPtrs鎸囬拡鐨勬暟緇?  <br>  璁╂垜浠亣璁句綘甯屾湜錛堝洜涓烘煇浜涜帿鍚嶅叾濡欑殑鍘熷洜錛夋妸涓涓寚鍚戜笅闈㈠嚱鏁扮殑鎸囬拡瀛樺叆funcPtrArray鏁扮粍錛?  <br>  int   doSomething();   <br>  浣犱笉鑳戒笉緇忚繃綾誨瀷杞崲鑰岀洿鎺ュ幓鍋氾紝鍥犱負doSomething鍑芥暟瀵逛簬funcPtrArray鏁扮粍鏉ヨ鏈変竴涓敊璇殑綾誨瀷銆傚湪FuncPtrArray鏁扮粍閲岀殑鍑芥暟榪斿洖鍊兼槸void綾誨瀷錛岃宒oSomething鍑芥暟榪斿洖鍊兼槸int綾誨瀷銆?  <br>  funcPtrArray[0]   =   &doSomething;           //   閿欒錛佺被鍨嬩笉鍖歸厤     <br>  reinterpret_cast鍙互璁╀綘榪嬌緙栬瘧鍣ㄤ互浣犵殑鏂規硶鍘葷湅寰呭畠浠細   <br>  funcPtrArray[0]   =                                       //   this   compiles   <br>      reinterpret_cast<FuncPtr>(&doSomething);   <br>  杞崲鍑芥暟鎸囬拡鐨勪唬鐮佹槸涓嶅彲縐繪鐨勶紙C++涓嶄繚璇佹墍鏈夌殑鍑芥暟鎸囬拡閮借鐢ㄤ竴鏍風殑鏂規硶琛ㄧず錛夛紝鍦ㄤ竴浜涙儏鍐典笅榪欐牱鐨勮漿鎹細浜х敓涓嶆紜殑緇撴灉錛堝弬瑙佹潯嬈綧31錛夛紝鎵浠ヤ綘搴旇閬垮厤杞崲鍑芥暟鎸囬拡綾誨瀷錛岄櫎闈炰綘澶勪簬鐫鑳屾按涓鎴樺拰灝栧垁鏋跺枆鐨勫嵄鎬ユ椂鍒匯備竴鎶婇攱鍒╃殑鍒銆備竴鎶婇潪甯擱攱鍒╃殑鍒銆?  <br>  濡傛灉浣犱嬌鐢ㄧ殑緙栬瘧鍣ㄧ己涔忓鏂扮殑綾誨瀷杞崲鏂瑰紡鐨勬敮鎸侊紝浣犲彲浠ョ敤浼犵粺鐨勭被鍨嬭漿鎹㈡柟娉曚唬鏇縮tatic_cast,   const_cast,   浠ュ強reinterpret_cast銆備篃鍙互鐢ㄤ笅闈㈢殑瀹忔浛鎹㈡潵妯℃嫙鏂扮殑綾誨瀷杞崲璇硶錛?  <br>  #define   static_cast(TYPE,EXPR)               ((TYPE)(EXPR))   <br>  #define   const_cast(TYPE,EXPR)                 ((TYPE)(EXPR))   <br>  #define   reinterpret_cast(TYPE,EXPR)     ((TYPE)(EXPR))   <br>  浣犲彲浠ヨ薄榪欐牱浣跨敤浣跨敤錛?  <br>  double   result   =   static_cast(double,   firstNumber)/secondNumber;   <br>  update(const_cast(SpecialWidget*,   &sw));   <br>  funcPtrArray[0]   =   reinterpret_cast(FuncPtr,   &doSomething);   <br>  榪欎簺妯℃嫙涓嶄細璞$湡瀹炵殑鎿嶄綔絎︿竴鏍峰畨鍏紝浣嗘槸褰撲綘鐨勭紪璇戝櫒鍙互鏀寔鏂扮殑鐨勭被鍨嬭漿鎹㈡椂錛屽畠浠彲浠ョ畝鍖栦綘鎶婁唬鐮佸崌綰х殑榪囩▼銆?  <br>  娌℃湁涓涓鏄撶殑鏂規硶鏉ユā鎷焏ynamic_cast鐨勬搷浣滐紝浣嗘槸寰堝鍑芥暟搴撴彁渚涗簡鍑芥暟錛屽畨鍏ㄥ湴鍦ㄦ淳鐢熺被涓庡熀綾諱箣闂磋繘琛岀被鍨嬭漿鎹€傚鏋滀綘娌℃湁榪欎簺鍑芥暟鑰屼綘鏈夊繀欏昏繘琛岃繖鏍風殑綾誨瀷杞崲錛屼綘涔熷彲浠ュ洖鍒癈椋庢牸鐨勭被鍨嬭漿鎹㈡柟娉曚笂錛屼絾鏄繖鏍風殑璇濅綘灝嗕笉鑳借幏鐭ョ被鍨嬭漿鎹㈡槸鍚﹀け璐ャ傚綋鐒訛紝浣犱篃鍙互瀹氫箟涓涓畯鏉ユā鎷焏ynamic_cast鐨勫姛鑳斤紝灝辮薄妯℃嫙鍏跺畠鐨勭被鍨嬭漿鎹竴鏍鳳細   <br>  #define   dynamic_cast(TYPE,EXPR)           (TYPE)(EXPR)   <br>  璇瘋浣忥紝榪欎釜妯℃嫙騫朵笉鑳藉畬鍏ㄥ疄鐜癲ynamic_cast鐨勫姛鑳斤紝瀹冩病鏈夊姙娉曠煡閬撹漿鎹㈡槸鍚﹀け璐ャ?  <br>  鎴戠煡閬擄紝鏄殑錛屾垜鐭ラ亾錛屾柊鐨勭被鍨嬭漿鎹㈡搷浣滅涓嶆槸寰堢編瑙傝屼笖鐢ㄩ敭鐩橀敭鍏ヤ篃寰堥夯鐑︺傚鏋滀綘鍙戠幇瀹冧滑鐪嬩笂鍘誨疄鍦ㄤ護浜鴻鍘岋紝C椋庢牸鐨勭被鍨嬭漿鎹㈣繕鍙互緇х畫浣跨敤騫朵笖鍚堟硶銆傜劧鑰岋紝姝f槸鍥犱負鏂扮殑綾誨瀷杞崲絎︾己涔忕編鎰熸墠鑳戒嬌瀹冨譏琛ヤ簡鍦ㄥ惈涔夌簿紜у拰鍙鯨璁ゆт笂鐨勭己鐐廣傚茍涓旓紝浣跨敤鏂扮被鍨嬭漿鎹㈢鐨勭▼搴忔洿瀹規槗琚В鏋愶紙涓嶈鏄浜哄伐榪樻槸瀵逛簬宸ュ叿紼嬪簭錛夛紝瀹冧滑鍏佽緙栬瘧鍣ㄦ嫻嬪嚭鍘熸潵涓嶈兘鍙戠幇鐨勯敊璇傝繖浜涢兘鏄斁寮僀椋庢牸綾誨瀷杞崲鏂規硶鐨勫己鏈夊姏鐨勭悊鐢便傝繕鏈夌涓変釜鐞嗙敱錛氫篃璁歌綾誨瀷杞崲絎︿笉緹庤鍜岄敭鍏ラ夯鐑︽槸涓浠跺ソ浜嬨?  <br></span><img src ="http://m.shnenglu.com/bangle/aggbug/62984.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/bangle/" target="_blank">榛戣壊澶╀嬌</a> 2008-09-28 15:12 <a href="http://m.shnenglu.com/bangle/archive/2008/09/28/62984.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鐞嗚В澶嶆潅鐨凜++澹版槑http://m.shnenglu.com/bangle/archive/2008/08/22/59624.html榛戣壊澶╀嬌榛戣壊澶╀嬌Fri, 22 Aug 2008 02:44:00 GMThttp://m.shnenglu.com/bangle/archive/2008/08/22/59624.htmlhttp://m.shnenglu.com/bangle/comments/59624.htmlhttp://m.shnenglu.com/bangle/archive/2008/08/22/59624.html#Feedback0http://m.shnenglu.com/bangle/comments/commentRss/59624.htmlhttp://m.shnenglu.com/bangle/services/trackbacks/59624.html闃呰鍏ㄦ枃

]]>
久久久久久A亚洲欧洲AV冫 | 久久综合亚洲色一区二区三区| 久久不见久久见免费影院www日本| 久久99精品国产| 国产精品永久久久久久久久久| 国产精品永久久久久久久久久| 蜜臀av性久久久久蜜臀aⅴ麻豆| 99久久精品日本一区二区免费| 国产精品久久久久天天影视| 久久无码国产| 97超级碰碰碰久久久久| 久久久久久午夜成人影院 | 精品欧美一区二区三区久久久| 久久夜色精品国产亚洲| 亚洲国产高清精品线久久| 国内精品久久久久伊人av| 高清免费久久午夜精品| 久久免费视频网站| 久久丝袜精品中文字幕| 久久精品国产亚洲AV蜜臀色欲| 91精品久久久久久无码| 久久亚洲精精品中文字幕| 国产亚洲精久久久久久无码| 国产精品一久久香蕉国产线看| 国产亚洲色婷婷久久99精品91| 天天做夜夜做久久做狠狠| 久久免费精品一区二区| 亚洲婷婷国产精品电影人久久 | 狠狠色丁香久久婷婷综合蜜芽五月| 久久婷婷色综合一区二区| 国产成人久久精品激情| 一本一道久久a久久精品综合| 久久综合九色综合网站| 精品国产综合区久久久久久| 免费精品国产日韩热久久| 久久久久无码专区亚洲av| 久久SE精品一区二区| 久久久久久噜噜精品免费直播| 一本久久a久久精品vr综合| 蜜臀av性久久久久蜜臀aⅴ麻豆| 久久无码一区二区三区少妇|