锘??xml version="1.0" encoding="utf-8" standalone="yes"?>青青草原综合久久,久久久无码精品亚洲日韩蜜臀浪潮,国产精品久久久久国产A级http://www.shnenglu.com/kevinlynx/category/19778.html浣庤皟鍋氭妧鏈痏_ C/C++\MMORPG鏈嶅姟鍣╘妯″潡鏋舵瀯__ TODO錛歭inux env/read more books __Kevin Lynxzh-cnWed, 05 Sep 2012 05:06:43 GMTWed, 05 Sep 2012 05:06:43 GMT60C/c++涓嚑縐嶆搷浣滀綅鐨勬柟娉?/title><link>http://www.shnenglu.com/kevinlynx/archive/2012/09/04/189464.html</link><dc:creator>Kevin Lynx</dc:creator><author>Kevin Lynx</author><pubDate>Tue, 04 Sep 2012 12:29:00 GMT</pubDate><guid>http://www.shnenglu.com/kevinlynx/archive/2012/09/04/189464.html</guid><wfw:comment>http://www.shnenglu.com/kevinlynx/comments/189464.html</wfw:comment><comments>http://www.shnenglu.com/kevinlynx/archive/2012/09/04/189464.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/kevinlynx/comments/commentRss/189464.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/kevinlynx/services/trackbacks/189464.html</trackback:ping><description><![CDATA[<div id="v9nlhrl" class="entry-content"> <p>鍙傝?a >How do you set, clear and toggle a single bit in C?</a></p> <p>c/c++涓浜岃繘鍒朵綅鐨勬搷浣滃寘鎷緗煇浣嶄負1銆佹竻闄ゆ煇浣嶏紙緗負0錛夈佸紑鍏蟲煇浣?toggling a bit)銆佹鏌ユ煇浣嶆槸鍚︿負1絳夈傝繖浜涙搷浣滆緝涓哄父瑙佸茍涓斿彲浠ヤ綔涓哄叾浠栦綅榪愮畻鐨勫熀紜鎺ュ彛錛屼互涓嬬綏鍒楀嚑縐嶆柟娉曪細</p> <h2>浼犵粺鏂規硶</h2> <ul> <li>璁劇疆鏌愪綅涓?</li> </ul> <div id="1nzvhdv" class="highlight"> <pre><code class="c"><span id="9tdrvlh" class="n">number</span> <span id="1v3tpfb" class="o">|=</span> <span id="lrxrtdd" class="mi">1</span> <span id="jvhpvpn" class="o"><<</span> <span id="pdt7hn7" class="n">x</span><span id="trtltdf" class="p">;</span> <span id="rjbjblj" class="c1">// 璁劇疆絎瑇浣嶄負1</span> </code></pre> </div> <!-- more --> <ul> <li>娓呴櫎鏌愪綅</li> </ul> <div id="hzjhh9h" class="highlight"> <pre><code class="c"><span id="f93t99b" class="n">number</span> <span id="xnfnxfz" class="o">&=</span> <span id="rbj9dbd" class="o">~</span><span id="37ndnn3" class="p">(</span><span id="vn3v1rx" class="mi">1</span> <span id="9t9ptpz" class="o"><<</span> <span id="dn31bzt" class="n">x</span><span id="xjbnv73" class="p">);</span> <span id="rdddv1v" class="c1">// 緗x浣嶄負0</span> </code></pre> </div> <ul> <li>寮鍏蟲煇浣?/li> </ul> <div id="nzpprzh" class="highlight"> <pre><code class="c"><span id="7dxnvv9" class="n">number</span> <span id="z39v7h3" class="o">^=</span> <span id="x91pzrl" class="mi">1</span> <span id="x3xnxdf" class="o"><<</span> <span id="xbjjjh9" class="n">x</span><span id="1d9zrzp" class="p">;</span> </code></pre> </div> <ul> <li>媯鏌ユ煇浣?/li> </ul> <div id="v17pp9t" class="highlight"> <pre><code class="c"><span id="hb3n7lx" class="k">if</span> <span id="7txh9d7" class="p">(</span><span id="v7xpjxx" class="n">number</span> <span id="jf17brb" class="o">&</span> <span id="nlbjjjb" class="p">(</span><span id="9hhzz3p" class="mi">1</span> <span id="pnvb71b" class="o"><<</span> <span id="9bll1j3" class="n">x</span><span id="xn3xnx1" class="p">))</span> </code></pre> </div> <p>鐩稿簲鍦版垜浠彲浠ュ皢鍏跺皝瑁呰搗鏉ワ紝綆渚跨殑鏂規硶鏄嬌鐢ㄥ畯鏉ュ皝瑁咃細</p> <div id="1x9jtr9" class="highlight"> <pre><code class="c"><span id="l1prhdf" class="cp">#define BIT_SET(a,b) ((a) |= (1<<(b)))</span> <span id="pbjz71p" class="cp">#define BIT_CLEAR(a,b) ((a) &= ~(1<<(b)))</span> <span id="lvnfv1n" class="cp">#define BIT_FLIP(a,b) ((a) ^= (1<<(b)))</span> <span id="1pbbld3" class="cp">#define BIT_CHECK(a,b) ((a) & (1<<(b)))</span> </code></pre> </div> <h2>浣跨敤浣嶇粨鏋勬搷浣?/h2> <p>榪欎釜浣跨敤璧鋒潵綆鍗曞緢澶氾細</p> <div id="hjt93rd" class="highlight"> <pre><code class="c"><span id="jv99rbh" class="k">struct</span> <span id="7ffxv73" class="n">bits</span> <span id="dt77dvn" class="p">{</span> <span id="h11rj7p" class="kt">unsigned</span> <span id="bdnnn3d" class="kt">int</span> <span id="n9v9ff9" class="n">a</span><span id="hhfhpnp" class="o">:</span><span id="d3nlr7f" class="mi">1</span><span id="3ll7jdl" class="p">;</span> <span id="ftljjjr" class="kt">unsigned</span> <span id="ztv7pfp" class="kt">int</span> <span id="h3hrjzj" class="n">b</span><span id="dnxfnld" class="o">:</span><span id="p9pf7bt" class="mi">1</span><span id="7n7l79n" class="p">;</span> <span id="rjr79rh" class="kt">unsigned</span> <span id="t93j93z" class="kt">int</span> <span id="blvldzt" class="n">c</span><span id="1vl9p3t" class="o">:</span><span id="7rbr1pf" class="mi">1</span><span id="l9rtdbl" class="p">;</span> <span id="jvfvnv9" class="p">};</span> <span id="t9jh1lb" class="k">struct</span> <span id="lvv97tt" class="n">bits</span> <span id="jv9hhxf" class="n">mybits</span><span id="dprpx1f" class="p">;</span> <span id="7f7r3xv" class="c1">// set/clear a bit</span> <span id="xjrh179" class="n">mybits</span><span id="1jbtd7r" class="p">.</span><span id="rjtlbjb" class="n">b</span> <span id="1fxhzph" class="o">=</span> <span id="tldjjlt" class="mi">1</span><span id="tv7tlrj" class="p">;</span> <span id="rvnvllf" class="n">mybits</span><span id="pzrzz73" class="p">.</span><span id="tp7nxfv" class="n">c</span> <span id="vxn1tbb" class="o">=</span> <span id="b119x7p" class="mi">0</span><span id="7bjtrt1" class="p">;</span> <span id="3td7dvd" class="c1">// toggle a bit</span> <span id="rl7rbxx" class="n">mybits</span><span id="x7dlrjz" class="p">.</span><span id="znnd7bt" class="n">a</span> <span id="rbrrrf7" class="o">=</span> <span id="97bjtzt" class="o">!</span><span id="7brh9dt" class="n">mybits</span><span id="p7nvnx9" class="p">.</span><span id="btjllll" class="n">a</span><span id="frhh3nf" class="p">;</span> <span id="nrrpfhp" class="n">mybits</span><span id="xzpx1nn" class="p">.</span><span id="jvxhrfv" class="n">b</span> <span id="1z7lrbb" class="o">=</span> <span id="lvndv7h" class="o">~</span><span id="dxphfxx" class="n">mybits</span><span id="bdvdfdd" class="p">.</span><span id="d9ttr79" class="n">b</span><span id="r79xfdl" class="p">;</span> <span id="lzhzrpz" class="n">mybits</span><span id="7vxprxj" class="p">.</span><span id="j739zhx" class="n">c</span> <span id="j1z19nb" class="o">^=</span> <span id="9t7bjpj" class="mi">1</span><span id="ntrrzhj" class="p">;</span> <span id="v79nntv" class="c1">// check a bit</span> <span id="xj7rbbr" class="k">if</span> <span id="lzhppx9" class="p">(</span><span id="hbttj1d" class="n">mybits</span><span id="71vvnv9" class="p">.</span><span id="lhp7jdv" class="n">c</span><span id="179hxf9" class="p">)</span> </code></pre> </div> <h2>浣跨敤STL鐨剆td::bitset<n></n> </h2> <p>榪欎釜鏂規硶鍏跺疄綾諱技浜庝嬌鐢ㄤ綅緇撴瀯錛屽彧涓嶈繃STL鍖呰浜嗚繖涓粨鏋勫畾涔夛紝褰撶劧榪樻彁渚涗簡寰堝渚挎嵎鐨勬帴鍙o細</p> <div id="rb7jbb7" class="highlight"> <pre><code class="c"><span id="h79pxvd" class="n">std</span><span id="t7tbbjl" class="o">::</span><span id="tnfd19n" class="n">bitset</span><span id="fvfnf7l" class="o"><</span><span id="jdl1hj7" class="mi">5</span><span id="p7f9jpp" class="o">></span> <span id="tdn9p7d" class="n">bits</span><span id="f1rjj7j" class="p">;</span> <span id="t7jz3xd" class="n">bits</span><span id="9pfdtlj" class="p">[</span><span id="7nldlt9" class="mi">0</span><span id="bbbbl1x" class="p">]</span> <span id="91f1jlr" class="o">=</span> <span id="9v1rb9r" class="nb">true</span><span id="n7jr1xp" class="p">;</span> <span id="v7blnt7" class="n">bits</span><span id="z7xhz1j" class="p">[</span><span id="zbdtljb" class="mi">1</span><span id="n7hx3bl" class="p">]</span> <span id="zjj7nnd" class="o">=</span> <span id="bh9tjh9" class="nb">false</span><span id="ptj7vdb" class="p">;</span> <span id="lnfxvfd" class="n">bits</span><span id="rn77bhr" class="p">.</span><span id="npz7npp" class="n">set</span><span id="d9b9lrj" class="p">(</span><span id="zvfnfnn" class="mi">2</span><span id="rtb3dll" class="p">);</span> <span id="ln9xx1j" class="n">bits</span><span id="d7ppdll" class="p">.</span><span id="lhh79v9" class="n">flip</span><span id="f3j3btt" class="p">(</span><span id="lvfttvl" class="mi">3</span><span id="l93zzb3" class="p">);</span> <span id="p3ldltt" class="n">bits</span><span id="vh7ppxp" class="p">.</span><span id="7jhhx7b" class="n">reset</span><span id="tpnfdtj" class="p">(</span><span id="zttldnd" class="mi">2</span><span id="xzhphfr" class="p">);</span> </code></pre> </div> <p class="post-footer"> 鍘熸枃鍦板潃錛? <a >http://codemacro.com/2012/09/04/bit-operation-in-c-slash-c-plus-plus/</a><br /> written by <a >Kevin Lynx</a>  posted at <a >http://codemacro.com</a> </p> </div><img src ="http://www.shnenglu.com/kevinlynx/aggbug/189464.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/kevinlynx/" target="_blank">Kevin Lynx</a> 2012-09-04 20:29 <a href="http://www.shnenglu.com/kevinlynx/archive/2012/09/04/189464.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C/c++涓殑--&gt;榪愮畻絎?/title><link>http://www.shnenglu.com/kevinlynx/archive/2012/09/03/189272.html</link><dc:creator>Kevin Lynx</dc:creator><author>Kevin Lynx</author><pubDate>Mon, 03 Sep 2012 07:30:00 GMT</pubDate><guid>http://www.shnenglu.com/kevinlynx/archive/2012/09/03/189272.html</guid><wfw:comment>http://www.shnenglu.com/kevinlynx/comments/189272.html</wfw:comment><comments>http://www.shnenglu.com/kevinlynx/archive/2012/09/03/189272.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/kevinlynx/comments/commentRss/189272.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/kevinlynx/services/trackbacks/189272.html</trackback:ping><description><![CDATA[<div id="b9j9trt" class="entry-content"> <p>鍙傝?a >What is the name of this operator: “–>”?</a></p> <p>c/c++涓互涓嬩唬鐮佹槸鍚堟硶鐨勶細</p> <div id="lzjx7l3" class="highlight"> <pre><code class="c"><span id="hblbhzx" class="cp">#include <stdio.h></span> <span id="t39n3fp" class="kt">int</span> <span id="njbbjp9" class="nf">main</span><span id="frbjt7r" class="p">()</span> <span id="9xxnxbv" class="p">{</span> <span id="lxhxh1j" class="kt">int</span> <span id="hdvd7db" class="n">x</span> <span id="hrj39d9" class="o">=</span> <span id="jbjr7x9" class="mi">10</span><span id="nzj7hz9" class="p">;</span> <span id="pjbljjt" class="k">while</span><span id="ddttl9b" class="p">(</span> <span id="pr7ppvv" class="n">x</span> <span id="1nnx99b" class="o">--></span> <span id="17lrjb3" class="mi">0</span> <span id="bltbtrt" class="p">)</span> <span id="h9z7dfv" class="c1">// x goes to 0</span> <span id="rlblblj" class="p">{</span> <span id="rt3vfvl" class="n">printf</span><span id="jfpph3n" class="p">(</span><span id="dh9fn7h" class="s">"%d "</span><span id="xprhh19" class="p">,</span> <span id="l7bldtl" class="n">x</span><span id="fz1pnlt" class="p">);</span> <span id="ftvtjj9" class="p">}</span> <span id="prbb9fn" class="p">}</span> </code></pre> </div> <p><code>--></code>鏄竴涓悎娉曠殑鎿嶄綔絎︼紝鎴戞墦璧岃嚜璁/c++鐔熸墜鐨勪綘浠兘涓嶇煡閬撹繖涓搷浣滅銆傛湁浜虹О瀹冧負<code>goes to</code>鎿嶄綔絎︼紝<code>x-->0</code>琛ㄧずx鍚?瓚嬭繎銆?/p> <p><strong>鍏跺疄鎴戝湪蹇芥偁浣犱滑銆?/strong> 騫朵笖鎴戠浉淇℃湁寰堝浜哄姝ゆ妸鎴忕浉褰撶啛鎮夈傛病閿欙紝<code>--></code>鍙槸涓や釜鎿嶄綔絎︽伆濂介亣鍦ㄤ簡涓璧鳳紝浠栦滑鏄嚜鍑忚繍綆楃<code>--</code>鍜屽ぇ浜庢瘮杈冭繍綆楃<code>></code>錛?/p> <div id="fzrrrh7" class="highlight"> <pre><code class="c"><span id="zt73xpf" class="k">while</span> <span id="h37tlbl" class="p">(</span><span id="t77xf3t" class="n">x</span><span id="v799phh" class="o">--</span> <span id="lpf799f" class="o">></span> <span id="dnd9l99" class="mi">0</span><span id="9lt9nvf" class="p">)</span> <span id="rt7rrz7" class="p">...</span> </code></pre> </div> <p>綾諱技鐨勬妸鎴忚繕鏈夛細</p> <div id="x9trzjj" class="highlight"> <pre><code class="c"><span id="rld7tlz" class="k">while</span> <span id="hb37brp" class="p">(</span><span id="tphhjhz" class="n">x</span> <span id="vzzb1dj" class="o">--</span> \<br /> \<br /> \<br /> \<br /> <span id="nrzzrpt" class="o">></span> <span id="fzhh7vt" class="mi">0</span><span id="37r3pzh" class="p">)</span> <span id="9v9zzbj" class="n">printf</span><span id="hrjzbzh" class="p">(</span><span id="l7fn79r" class="s">"%d "</span><span id="xjbj7ft" class="p">,</span> <span id="71jb3hx" class="n">x</span><span id="d33dlrb" class="p">);</span> </code></pre> </div> <p class="post-footer"> 鍘熸枃鍦板潃錛? <a >http://codemacro.com/2012/09/03/goes-to-operator/</a><br /> written by <a >Kevin Lynx</a>  posted at <a >http://codemacro.com</a> </p> </div><img src ="http://www.shnenglu.com/kevinlynx/aggbug/189272.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/kevinlynx/" target="_blank">Kevin Lynx</a> 2012-09-03 15:30 <a href="http://www.shnenglu.com/kevinlynx/archive/2012/09/03/189272.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浣跨敤memcmp姣旇緝涓や釜鍙橀噺緇撴灉涓瀹氬悧錛?/title><link>http://www.shnenglu.com/kevinlynx/archive/2012/08/17/187481.html</link><dc:creator>Kevin Lynx</dc:creator><author>Kevin Lynx</author><pubDate>Fri, 17 Aug 2012 06:07:00 GMT</pubDate><guid>http://www.shnenglu.com/kevinlynx/archive/2012/08/17/187481.html</guid><wfw:comment>http://www.shnenglu.com/kevinlynx/comments/187481.html</wfw:comment><comments>http://www.shnenglu.com/kevinlynx/archive/2012/08/17/187481.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/kevinlynx/comments/commentRss/187481.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/kevinlynx/services/trackbacks/187481.html</trackback:ping><description><![CDATA[<div id="ltvtl1h" class="entry-content"> <p>鍙傝?a >Is using memcmp on array of int strictly conforming?</a></p> <p>浠ヤ笅浠g爜涓瀹氫細杈撳嚭ok鍚楋紵</p> <div id="9xxpp1n" class="highlight"> <pre><code class="c"><span id="phzpzxz" class="cp">#include <stdio.h></span> <span id="nnf9b9h" class="cp">#include <string.h></span> <span id="brb3bz1" class="k">struct</span> <span id="pfpph79" class="n">S</span> <span id="tn7b7xf" class="p">{</span> <span id="x9nfbbd" class="kt">int</span> <span id="bn7l39b" class="n">array</span><span id="7hpxhhz" class="p">[</span><span id="t9tl739" class="mi">2</span><span id="frbbl1p" class="p">];</span> <span id="1fphfxf" class="p">};</span> <span id="9nfxhf7" class="kt">int</span> <span id="lvxfnln" class="nf">main</span> <span id="fhhrrzh" class="p">()</span> <span id="77lttbz" class="p">{</span> <span id="f9nxffn" class="k">struct</span> <span id="3hxpxpp" class="n">S</span> <span id="9jzjh7r" class="n">a</span> <span id="rxv7nlv" class="o">=</span> <span id="tpzzjx7" class="p">{</span> <span id="nzrrbrt" class="p">{</span> <span id="z7xv99b" class="mi">1</span><span id="xjbjrjh" class="p">,</span> <span id="vhhhr1l" class="mi">2</span> <span id="hlnl9zb" class="p">}</span> <span id="7lf7jr9" class="p">};</span> <span id="p9lvjdb" class="k">struct</span> <span id="d7n99nl" class="n">S</span> <span id="71vtvdb" class="n">b</span><span id="h7jblr7" class="p">;</span> <span id="fl7zzp7" class="n">b</span> <span id="l3h99z3" class="o">=</span> <span id="bfpf7nv" class="n">a</span><span id="nr1ppx7" class="p">;</span> <span id="l733llt" class="k">if</span> <span id="fllj19t" class="p">(</span><span id="pnlll97" class="n">memcmp</span><span id="rxnvn7l" class="p">(</span><span id="hlt9r9r" class="n">b</span><span id="plvvvnl" class="p">.</span><span id="vrrr1jp" class="n">array</span><span id="zldvxfx" class="p">,</span> <span id="z7vf1vd" class="n">a</span><span id="th7xzp7" class="p">.</span><span id="7bj9lnn" class="n">array</span><span id="d9nfvbd" class="p">,</span> <span id="3tlvdjl" class="k">sizeof</span><span id="bzzzxxr" class="p">(</span><span id="xddd7tb" class="n">b</span><span id="7j9dvld" class="p">.</span><span id="1p7rjjz" class="n">array</span><span id="jphnndf" class="p">))</span> <span id="pltlvtl" class="o">==</span> <span id="1pphr91" class="mi">0</span><span id="ft7rjhz" class="p">)</span> <span id="p9jbphh" class="p">{</span> <span id="xbbllvv" class="n">puts</span><span id="rnvdfvn" class="p">(</span><span id="7zjh7lf" class="s">"ok"</span><span id="77n39pn" class="p">);</span> <span id="1h1tvbl" class="p">}</span> <span id="7lt7jz9" class="k">return</span> <span id="j7vfdlb" class="mi">0</span><span id="ltt1v9h" class="p">;</span> <span id="hltddbt" class="p">}</span> </code></pre> </div> <!-- more --> <p>鎴戝湪vs2005浠ュ強gcc4.4.3涓婂仛浜嗘祴璇曪紝閮借緭鍑轟簡ok銆備絾榪欏茍涓嶆剰鍛寵繖涓唬鐮佷細姘歌繙杈撳嚭ok銆傞棶棰樹富瑕侀泦涓簬榪欓噷浣跨敤浜嗚祴鍊艱鍙ユ潵澶嶅埗鍊鹼紝浣嗗嵈浣跨敤浜唌emcmp榪欎釜鍩轟簬鍐呭瓨鏁版嵁姣旇緝鐨勫嚱鏁版潵姣旇緝鍊箋?/p> <p>c璇█涓殑璧嬪艱繍綆楃錛?錛夎瀹氫箟涓哄熀浜庡肩殑澶嶅埗錛岃屼笉鏄熀浜庡唴瀛樺唴瀹圭殑澶嶅埗銆?/p> <blockquote><p><strong>C99 section 6.5.16.1 p2:</strong> In simple assignment (=), the value of the right operand is converted to the type of the assignment expression and replaces the value stored in the object designated by the left operand.</p></blockquote> <p>榪欎釜鍏跺疄寰堝ソ鐞嗚В錛屽挨鍏跺湪涓嶅悓綾誨瀷鐨勬暟瀛楃被鍨嬮棿澶嶅埗鏃訛紝渚嬪錛?/p> <div id="1h39lvt" class="highlight"> <pre><code class="c"><span id="rlvdn7b" class="kt">float</span> <span id="ftb7jbr" class="n">a</span> <span id="b9ddbd7" class="o">=</span> <span id="lll7jbr" class="mf">1.1</span><span id="9jrh3xv" class="p">;</span> <span id="x3x9vlv" class="kt">int</span> <span id="9nljltr" class="n">b</span> <span id="7h1lvdf" class="o">=</span> <span id="jfx7193" class="n">a</span><span id="t99xzzx" class="p">;</span> </code></pre> </div> <p>鍥犱負嫻偣鏁板拰鏁村艦鏁扮殑鍐呭瓨甯冨眬涓嶄竴鏍鳳紝鎵浠ヨ偗瀹氭槸鍩轟簬鍊肩殑涓縐嶅鍒躲傚彟澶栵紝鎸夌収璇█鏍囧噯鐨勬濊礬鏉ョ湅錛屽唴瀛樺竷灞榪欑涓滆タ涓鑸兘灞炰簬瀹炵幇鐩稿叧鐨勶紝鎵浠ヨ璦鏍囧噯鏄笉浼氫緷璧栧疄鐜板幓瀹氫箟璇█鐨勩?/p> <p>涓婇潰鐨勫畾鐞嗗悓鏍風敤浜庡鏉傛暟鎹被鍨嬶紝渚嬪緇撴瀯浣撱傛垜浠兘鐭ラ亾緇撴瀯浣撴瘡涓垚鍛樹箣闂村彲鑳戒細鏈夊瓧鑺傝ˉ榻愶紝鑰屼嬌鐢ㄨ祴鍊艱繍綆楃鏉ュ鍒舵椂錛屼細涓嶄細澶嶅埗榪欎簺琛ラ綈瀛楄妭鐨勫唴瀹癸紝鏄璦鏍囧噯鏈瀹氱殑銆傝繖鎰忓懗鐫浣跨敤memcmp姣旇緝涓や釜閫氳繃璧嬪艱繍綆楃澶嶅埗鐨勪袱涓粨鏋勪綋鏃訛紝鍏剁粨鏋滄槸鏈畾鐨勩?/p> <p>浣嗘槸涓婇潰鐨勪唬鐮佷緥瀛愪腑錛屾瘮杈冪殑鍏跺疄鏄袱涓猧nt鏁扮粍銆傝繖涔熸棤娉曠‘璁ょ粨鏋滃悧錛熻繖涓棶棰樻渶緇堥泦涓簬錛岄毦閬搃nt涔熶細鏈変笉紜畾鐨勮ˉ榻愬瓧鑺傛暟鎹紵</p> <blockquote><p><strong>C99 6.2.6.2 integer types</strong> For signed integer types, the bits of the object representation shall be divided into three groups: value bits, padding bits, and the sign bit. […] The values of any padding bits are unspecified.</p></blockquote> <p>榪欒瘽鍏跺疄鎴戜篃涓嶅お鎳傘備竴涓湁絎﹀彿鏁存暟int錛屽叾鍐呬篃鏈夎ˉ榻愪簩榪涘埗浣?bits)錛?/p> <p>浣嗘棤璁哄浣曪紝榪欎釜渚嬪瓙閮戒笉綆椾弗璋ㄧ殑浠g爜銆備漢浠殑寤鴻鏄嬌鐢╩emcpy鏉ュ鍒惰繖縐嶆暟鎹紝鍥犱負memcpy鍜宮emcmp閮芥槸鍩轟簬鍐呭瓨鍐呭鏉ュ伐浣滅殑銆?/p> <p class="post-footer"> 鍘熸枃鍦板潃錛? <a >http://codemacro.com/2012/08/17/memcmp-on-copy-value/</a><br /> written by <a >Kevin Lynx</a>  posted at <a >http://codemacro.com</a> </p> </div><img src ="http://www.shnenglu.com/kevinlynx/aggbug/187481.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/kevinlynx/" target="_blank">Kevin Lynx</a> 2012-08-17 14:07 <a href="http://www.shnenglu.com/kevinlynx/archive/2012/08/17/187481.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璁﹚xListCtrl鏀寔瀛恑tem緙栬緫http://www.shnenglu.com/kevinlynx/archive/2012/08/07/186581.htmlKevin LynxKevin LynxTue, 07 Aug 2012 09:09:00 GMThttp://www.shnenglu.com/kevinlynx/archive/2012/08/07/186581.htmlhttp://www.shnenglu.com/kevinlynx/comments/186581.htmlhttp://www.shnenglu.com/kevinlynx/archive/2012/08/07/186581.html#Feedback0http://www.shnenglu.com/kevinlynx/comments/commentRss/186581.htmlhttp://www.shnenglu.com/kevinlynx/services/trackbacks/186581.html

鎴戜嬌鐢ㄧ殑wxLua鐗堟湰淇℃伅涓?code>wxLua 2.8.7.0 built with wxWidgets 2.8.8錛屼篃灝辨槸LuaForWindows_v5.1.4-40.exe榪欎釜瀹夎鍖呴噷鑷甫鐨剋xLua銆傛垜涓嶇煡閬撳叾浠杦xWidgets鐗堟湰閲寃xListCtrl鎬庢牱錛屼絾鎴戜嬌鐢ㄧ殑鐗堟湰閲寃xListCtrl鏄笉鏀寔緙栬緫閲岄潰鐨勫瓙item鐨勩傚湪鎴戜嬌鐢ㄧ殑report妯″紡涓嬶紝瀛恑tem涔熷氨鏄壒瀹氭煇涓琛屼竴鍒楃殑item銆?/p>

google浜嗕竴涓嬶紝鍙戠幇鎮插墽鍦伴渶瑕佽嚜宸卞疄鐜幫紝涓昏灝辨槸鑷繁鏄劇ず涓涓獁xTextCtrl錛?/p>

--
-- file: wxListCtrlTextEdit.lua
-- author: Kevin Lynx
-- date: 08.06.2012
--
local EditList = {}

-- get the column by an abs point
function EditList:getColumn(x)
    local cols = self.listctrl:GetColumnCount()
    local cx = 0
    for i = 0, cols - 1 do
        local w = self.listctrl:GetColumnWidth(i)
        if x <= cx + w then return i end
        cx = cx + w
    end
    return -1
end

-- when a mouse down, show a text edit control 
function EditList:onLeftDown(evt)
    if self.editor:IsShown() then
        self:closeEditor()
    end
    local p = evt:GetPoint()
    local row = evt:GetIndex()
    local col = self:getColumn(p.x)
    local rect = wx.wxListCtrlEx.GetSubItemRect(self.listctrl, row, col)
    rect:SetHeight(rect:GetHeight() + 5) -- adjust
    self.editor:SetSize(rect)
    self.editor:Show()
    self.editor:SetValue(wx.wxListCtrlEx.GetItemText(self.listctrl, row, col))
    self.editor:SetFocus()
    self.col = col
    self.row = row
end

function EditList:closeEditor()
    if not self.editor:IsShown() then return end
    self.editor:Hide()
    self.listctrl:SetItem(self.row, self.col, self.editor:GetValue())
end

function EditList:initialize()
    self.editor = wx.wxTextCtrl(self.listctrl, wx.wxID_ANY, "", wx.wxDefaultPosition, wx.wxDefaultSize, wx.wxTE_PROCESS_ENTER + wx.wxTE_RICH2)
    self.editor:Connect(wx.wxEVT_COMMAND_TEXT_ENTER, function () self:closeEditor() end)
    -- not work actually
    self.editor:Connect(wx.wxEVT_COMMAND_KILL_FOCUS, function () self:closeEditor() end)
    self.editor:Hide()
end

function wx.wxListCtrlTextEdit(listctrl)
    local o = {
        listctrl = listctrl,
        editor = nil,
    }
    local editlist = newObject(o, EditList)
    editlist:initialize()
    listctrl:Connect(wx.wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK, function (evt) editlist:onLeftDown(evt) end)
    listctrl:Connect(wx.wxEVT_COMMAND_LIST_ITEM_FOCUSED, function () editlist:closeEditor() end)
    return listctrl
end

鍏跺師鐞嗗氨鏄幏鍙栧埌褰撳墠榧犳爣鐐瑰嚮鎵鍦ㄧ殑瀛恑tem浣嶇疆錛岀劧鍚庡湪姝や綅緗樉紺轟竴涓獁xEditCtrl鍗沖彲銆備互涓婁唬鐮侀渶瑕佷緷璧栨垜涔嬪墠鍐欑殑Lua閲屽疄鐜扮畝鍗曠殑綾?瀵硅薄涓殑浠g爜錛屽悓鏃朵緷璧栦互涓嬮拡瀵箇xListCtrl鐨勬墿灞曟帴鍙o細

--
-- file: wxListCtrlExtend.lua
-- author: Kevin Lynx
-- date: 08.07.2012
-- brief: extend some util functions to wx.wxListCtrl
-- 
wx.wxListCtrlEx = {}

function wx.wxListCtrlEx.GetSubItemRect(listctrl, item, col)
    local rect = wx.wxRect()
    listctrl:GetItemRect(item, rect)
    local x = 0
    local w = 0
    for i = 0, col do
        w = listctrl:GetColumnWidth(i)
        x = x + w
    end
    return wx.wxRect(x - w, rect:GetY(), w, rect:GetHeight())
end

function wx.wxListCtrlEx.GetItemText(listctrl, item, col)
    local info = wx.wxListItem()
    info:SetId(item)
    info:SetColumn(col)
    info:SetMask(wx.wxLIST_MASK_TEXT)
    listctrl:GetItem(info)
    return info:GetText()
end

鍦ㄦ垜鐪嬪埌鐨剋xWidgets瀹樻柟鏂囨。閲岋紝鍏跺疄wxListCtrl宸茬粡鏈?code>GetSubItemRect鎺ュ彛錛屽茍涓斿湪鍙︿竴浜涚ず渚嬩唬鐮侀噷錛屼篃鐪嬪埌浜?code>GetItemText鎺ュ彛錛屼絾鏄紝鎴戜嬌鐢ㄧ殑鐗堟湰閲屾病鏈夛紝鎵浠ュ彧濂借嚜宸卞啓銆傚熀浜庝互涓婏紝瑕佷嬌鐢ㄨ繖涓彲浠ユ敮鎸佺紪杈戝瓙item鐨剋xListCtrl錛屽彲浠ワ細

list = wx.wxListCtrlTextEdit(wx.wxListCtrl(dialog, wx.wxID_ANY, wx.wxDefaultPosition, wx.wxDefaultSize, wx.wxLC_REPORT))

涔熷氨鏄氳繃wx.wxListCtrlTextEdit榪欎釜鍑芥暟鍋氫笅澶勭悊錛岃繖涓嚱鏁拌繑鍥炵殑鏄湰韜殑wxListCtrl銆傚綋鐒舵洿濂界殑鏂瑰紡鏄嬌鐢ㄧ戶鎵夸箣綾葷殑鏂瑰紡錛屽紑鍙戜竴縐嶆柊鐨勬帶浠訛紝浣嗗湪Lua涓紝閽堝usedata綾誨瀷鐨勬墿灞曡矊浼煎彧鑳借繖鏍蜂簡銆?/p>

鏈濂藉悙妲戒笅錛岃繖涓帶浠舵墿灞曞叾瀹炲緢鎭跺績銆傛湰鏉ユ垜鎵撶畻褰撶紪杈戞帶浠跺け鍘葷劍鐐瑰悗灝遍殣钘忓畠錛屼絾鏄線緙栬緫鎺т歡涓婃敞鍐孠ILL_FOCUS浜嬩歡濮嬬粓涓嶈搗浣滅敤錛涙垜鍙堟墦綆楀紕涓狤SC閿洏浜嬩歡鍘繪墜鍔ㄥ彇娑堬紝浣嗘樉鐒秝xTextCtrl鏄笉鏀寔閿洏浜嬩歡鐨勩傚ソ鍚э紝鍑戝悎鐢ㄤ簡銆?/p>



Kevin Lynx 2012-08-07 17:09 鍙戣〃璇勮
]]>
久久99中文字幕久久| 久久久久久久综合狠狠综合| 国产亚洲精品自在久久| 亚洲伊人久久大香线蕉苏妲己 | 久久精品国产亚洲av麻豆色欲| 国内精品久久久久影院优| 久久亚洲av无码精品浪潮| 一本色道久久HEZYO无码| 久久伊人精品青青草原高清| 一本一道久久a久久精品综合| 波多野结衣中文字幕久久| 久久亚洲精品无码观看不卡| 国内精品久久久久影院一蜜桃| 亚洲精品97久久中文字幕无码| 久久国产精品久久| 亚洲精品乱码久久久久久 | 久久国产成人午夜AV影院| 久久久久久久精品妇女99| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产成人无码精品久久久性色 | 久久综合一区二区无码| 麻豆精品久久精品色综合| 亚洲国产另类久久久精品黑人| 久久久久亚洲AV成人网人人软件 | 国产69精品久久久久观看软件| 91精品婷婷国产综合久久| 麻豆一区二区99久久久久| 久久综合亚洲色HEZYO社区 | 国产精品久久久久久五月尺| 久久久WWW成人| 久久国产香蕉视频| 国产成人无码精品久久久免费| 国产精品久久久久影院嫩草 | 色综合合久久天天综合绕视看| 久久棈精品久久久久久噜噜| 99久久精品免费看国产一区二区三区| 久久精品视频一| 99久久精品免费看国产一区二区三区 | 亚洲精品国精品久久99热一| 97精品依人久久久大香线蕉97| 久久久久波多野结衣高潮|