• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Creative Commons License
            本Blog采用 知識(shí)共享署名-非商業(yè)性使用-禁止演繹 3.0 Unported許可協(xié)議 進(jìn)行許可。 —— Fox <游戲人生>

            游戲人生

            游戲人生 != ( 人生 == 游戲 )
            站點(diǎn)遷移至:http://www.yulefox.com。請(qǐng)訂閱本博的朋友將RSS修改為http://feeds.feedburner.com/yulefox
            posts - 62, comments - 508, trackbacks - 0, articles - 7

            不怕無(wú)知,但怕無(wú)畏

            Posted on 2008-03-20 21:17 Fox 閱讀(4120) 評(píng)論(52)  編輯 收藏 引用 所屬分類: G游戲編程

            Author: Fox

            昨天越俎代庖面試了一個(gè)家伙。

            看完了他的筆試題目,感覺(jué)后背有點(diǎn)涼,但這些東西看看也就過(guò)去了,說(shuō)實(shí)話,那些C++的題目多少有點(diǎn)BT

            但我一直覺(jué)得DS的東西,如果你當(dāng)初學(xué)的時(shí)候是很認(rèn)真學(xué)習(xí)過(guò)并思考過(guò)的,其實(shí)是不需要去記憶的,所以我就問(wèn)了一個(gè)關(guān)于穩(wěn)定排序和不穩(wěn)定排序的問(wèn)題。我想,只要你理解了各種排序算法的思想,很easy。

            只是這哥們兒忘記了什么是穩(wěn)定排序,我還以為他把快速排序、堆排序當(dāng)作穩(wěn)定排序只是沒(méi)記住。看來(lái),老師從小教育的"一道題目你即使不會(huì)也要盡量去答"這種思想遺毒頗深。如果抱著這種思想做程序員,公司多半要垮掉。

            想一想穩(wěn)定排序的概念吧:兩個(gè)同值元素(不知為什么,我一直記得嚴(yán)老師書(shū)上用的是49,看來(lái)我還是在讀死書(shū)死讀書(shū),最后可能會(huì)讀書(shū)死L)在排序前后相對(duì)位置保持不變,即本來(lái)在前面的還在前面(所謂"塵歸塵,土歸土",看來(lái)最近思想有點(diǎn)消極,難怪沒(méi)有激情L)。再想想各種排序的思想,我們很容易得到這樣的結(jié)論:最普通的O(n2)的算法,一個(gè)一個(gè)從前比到后,自然不會(huì)影響到同值元素的相對(duì)位置,而O(nlogn)的算法,由于多路比較,可能導(dǎo)致本來(lái)相對(duì)位于后面的元素先比較和移動(dòng),造成不穩(wěn)定。這樣一想,自然知道簡(jiǎn)單的插入、選擇、歸并排序都是穩(wěn)定的,而改進(jìn)的高效率的算法則不穩(wěn)定。

            后面另一個(gè)同事在詢問(wèn)他做的Demo的事情,因?yàn)槭荄X的東西,我不懂,沒(méi)插嘴,就隨便看他的簡(jiǎn)歷。

            看到其中一項(xiàng),有提到他曾經(jīng)給大一、大二的學(xué)生做過(guò)C++培訓(xùn)。我本沒(méi)打算提他筆試中的C++部分的,但既然曾經(jīng)為人師表(因?yàn)槲以?jīng)做過(guò)學(xué)生、也做過(guò)老師),C++基礎(chǔ)掌握到這種程度就不對(duì)了。尤其對(duì)于一個(gè)空的C++類默認(rèn)生成哪些成員函數(shù)居然寫的一塌糊涂(友情提示:你也不用BS他,如果你沒(méi)有看過(guò)Lippman的《Inside of the C++ Object Model》,建議你先不要發(fā)言J)。

            我一般對(duì)語(yǔ)言特性不太敢發(fā)表觀點(diǎn)(因?yàn)槲业腃++基礎(chǔ)不扎實(shí)L),但我對(duì)簡(jiǎn)單的算法或思想小有興趣(沒(méi)有你想象中那么高)。可是,筆試中唯一的一個(gè)需要coding的題目他又沒(méi)寫。我只好說(shuō),C++的東西你掌握怎么樣我也可以不看,但這個(gè)memcpy的實(shí)現(xiàn),你怎么也得有點(diǎn)想法吧?不然怎么去寫代碼呢?剛好在面他之前,還和同事討論過(guò)memcpy的問(wèn)題(如果你給出one byte by one byte的實(shí)現(xiàn)會(huì)遭BS的J,因?yàn)槟憔尤粵](méi)有考慮過(guò)計(jì)算機(jī)系統(tǒng)本身的數(shù)據(jù)處理)。

            本來(lái)還想問(wèn)他一個(gè)關(guān)于sizeof()的問(wèn)題,后來(lái)覺(jué)得也沒(méi)什么必要,關(guān)于union的對(duì)齊,要按照單位最長(zhǎng)的成員對(duì)齊這一點(diǎn)自己都覺(jué)得有點(diǎn)BT就算了。

            其實(shí),我想說(shuō)的是,很多東西,你不能認(rèn)為你掌握的很好(除非你真的掌握的很好),所謂很好,拿C++來(lái)說(shuō),就是把你認(rèn)為你好的地方,你可以不翻其他東西,把它寫下來(lái),基本跟ISO C++保持90%以上的相似度就可以了。當(dāng)然,這樣說(shuō)有點(diǎn)賤了。

            畢竟,做游戲程序員(其他也差不多吧)需要的是:

            帶著激情去編碼,帶著虛心去學(xué)習(xí),帶著挑戰(zhàn)去交流,帶著壓力去工作。

            激情,能讓你的思維滿具創(chuàng)意,代碼極其飄逸;

            虛心,能讓你的知識(shí)不斷積累,從而達(dá)到厚積薄發(fā);

            挑戰(zhàn),能讓你的團(tuán)隊(duì)充滿活力,交流活潑嚴(yán)謹(jǐn);

            壓力,能讓你的心態(tài)保持平衡,勝不妄喜,敗不惶餒。

            因?yàn)樽约哼@兩周心態(tài)受到非智力因素干擾,日子過(guò)得有點(diǎn)渾噩。寫下來(lái),主要是為了放松一下,也提醒自己。

            不怕無(wú)知,但怕無(wú)畏。

            -----------------------------------------------------------------

            PS:補(bǔ)記于2008/03/26

            還是把上午寫的一個(gè)mymemcpy放上來(lái)吧。里面沒(méi)有對(duì)des < src + len的重疊情況進(jìn)行討論,因?yàn)榇笾耮oogle了一下,似乎很少人這樣做(倒不是因?yàn)椴荒軐?shí)現(xiàn))。

            void *mymemcpy( void *src, void *des, size_t len )
            {
            ?char *tempsrc = (char *)src;
            ?char *tempdes = (char *)des;

            ?size_t offset = len / 4;
            ?for( size_t i=0; i<offset; ++i )
            ?{
            ??*(unsigned long *)tempdes = *(unsigned long *)tempsrc;
            ??tempdes += sizeof(unsigned long);
            ??tempsrc += sizeof(unsigned long);
            ?}
            ?
            ?offset = len - len % 4;
            ?for( size_t i=0; i<offset; ++i )
            ?{
            ??*tempdes++ = *tempsrc++;
            ?}
            ?return des;
            }

            剛才想求證一下memcpy在地址重疊的情況下,是否會(huì)考慮從后往前copy的情況。結(jié)果看到云風(fēng)的blog上很早的一篇文章,也是講memcpy的,角度不同。

            我想澄清一點(diǎn),我寫這篇blog的初衷只是總結(jié)幾個(gè)技術(shù)問(wèn)題,因此就沒(méi)有把面試的前因后果講一下,反倒讓很多朋友誤解,以為我怎么怎么樣了。

            事實(shí)情況是,這幾個(gè)問(wèn)題都是本來(lái)的筆試題目當(dāng)中的,面試的TX從上午10:00前后做到11:30過(guò),等我和另一個(gè)同事13點(diǎn)過(guò)去的時(shí)候,我一直沒(méi)怎么說(shuō)話。只是在一邊看他的簡(jiǎn)歷和題目,文中已經(jīng)說(shuō)了,是看到他的簡(jiǎn)歷之后才提的問(wèn)題。當(dāng)時(shí)是有10道左右的C++題目,他做對(duì)的其實(shí)只有一道。

            而且,我在提問(wèn)題的時(shí)候也都將問(wèn)題跟他一起分析了的(除了memcpy之外),自我感覺(jué)說(shuō)話還是很得體的,寫文章的風(fēng)格是另一碼事兒。

            我沒(méi)有絲毫瞧不起這位TX的意思,也完全沒(méi)有顯擺的想法。

            PS :忽然想到自己最近為什么癖性十足,因?yàn)樽罱陉P(guān)注一個(gè)家伙的 Blog ,如果不侵權(quán),我想用用他的 Blog 的名字《 不許聯(lián)想 》,作者是帶三個(gè)表王小峰(《三聯(lián)生活周刊》記者)。所以,如果有人想拍我,建議先看看他的東西,學(xué)習(xí)一下措辭 J 。一個(gè)同事,說(shuō)天涯也行,我個(gè)人覺(jué)得天涯有點(diǎn)相互吹捧的味道。

            惡心,但沒(méi)有惡意 J

            Feedback

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-20 22:24 by adsf
            Y也少說(shuō)兩句,出來(lái)混,遲早得還,到時(shí)候你還不知道要栽在誰(shuí)手被誰(shuí)BS呢

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-20 22:54 by kacy16
            看了樓主的文章,對(duì)于那memcpy的實(shí)現(xiàn)問(wèn)題,我個(gè)人想到的方法也是一個(gè)一個(gè)BYTE來(lái)復(fù)制,但是不知道“計(jì)算機(jī)系統(tǒng)本身的數(shù)據(jù)處理”這怎么理解,以及您認(rèn)為好的memcpy的實(shí)現(xiàn)大致是怎樣的?樓主能否給說(shuō)明一下,謝謝!

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 00:12 by 羅賓李
            @kacy16
            用DWORD指針,每次復(fù)制4個(gè)字節(jié),以上

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 08:21 by cppexplore
            呵呵
            考察memcpy內(nèi)存地址的字節(jié)對(duì)齊問(wèn)題 對(duì)實(shí)際的開(kāi)發(fā)有啥意義嗎?

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 08:55 by Fox
            @adsf:不怕無(wú)知,但怕無(wú)畏,我也不是沒(méi)栽過(guò),也不是沒(méi)被BS過(guò),雖然資質(zhì)愚鈍,但我一直在努力,如果真愿意做技術(shù),有人給你指出來(lái),你應(yīng)該懷著感恩的心:)

            @kacy16
            主要就是字節(jié)對(duì)齊和DWORD(4B) copy。
            字節(jié)對(duì)齊主要體現(xiàn)在首地址不是4的倍數(shù)和尾部不足4B的情況處理,這種情況下,你只能按Byte copy了。

            @cppexplore
            其實(shí)如果代碼寫多了,這個(gè)問(wèn)題應(yīng)該是每個(gè)人都會(huì)不自覺(jué)得去想的,或者就算不想,也該有自己的一個(gè)想法。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 09:11 by cppexplore
            @Fox
            沒(méi)看過(guò)memcpy strcpy庫(kù)函數(shù)實(shí)現(xiàn)的,給出按位處理的想法很正常。就像去寫strcpy,檢測(cè)空指針、越界、返回結(jié)果指針就很好了,一定要求他給出類似庫(kù)函數(shù)實(shí)現(xiàn)的高效不太現(xiàn)實(shí),也沒(méi)啥意義,就象研究茴香豆的茴有幾種寫法一樣。反正實(shí)際開(kāi)發(fā)中不用,就是虛無(wú)縹緲的想想。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 09:16 by 飯中淹
            最好的memcpy的實(shí)現(xiàn)應(yīng)該是
            void my_memcpy( void * _dst, void * _src, t_size _size )
            {
            memcpy(_dst, _src, _size);
            }

            另外,c++類的默認(rèn)成員函數(shù)也要看用途來(lái)決定需要寫哪些。

            穩(wěn)定排序,不穩(wěn)定排序這是個(gè)概念問(wèn)題,作程序的沒(méi)必要去硬扣這個(gè)概念。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 09:19 by cppexplore
            @飯中淹
            牛啊 果然是最好的內(nèi)存copy實(shí)現(xiàn),竟然還實(shí)現(xiàn)了跨平臺(tái)
            要是加上inline 或者用包裹宏代替函數(shù)就更完美了 哈哈

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 09:31 by Fox
            @cppexplore
            一語(yǔ)中的
            如果答案寫成這樣,我也會(huì)很高興了,起碼是能夠從不同的角度解決問(wèn)題:P
            #define my_memcpy memcpy

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 09:32 by raof01
            有很多人學(xué)過(guò)幾天C++,就敢在簡(jiǎn)歷上寫“精通C++”,這種人被BS了活該。另:應(yīng)用程序員對(duì)于library的實(shí)現(xiàn)還是很陌生的,考慮的也不會(huì)很多,博主要求有點(diǎn)高。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 09:45 by Fox
            @raof01
            是的,所以我開(kāi)始并沒(méi)有想去追問(wèn)一些問(wèn)題。現(xiàn)在提出來(lái)也只是討論一下一個(gè)程序員對(duì)于編碼應(yīng)該有的態(tài)度。

            我個(gè)人一直認(rèn)為,一個(gè)項(xiàng)目的成功,需要幾個(gè)對(duì)C/C++(其他語(yǔ)言也一樣)編碼抱著像對(duì)女人一樣的感覺(jué),如果你不是真的愛(ài)她,就不要說(shuō)愛(ài)她,如果你只是喜歡她,也不要說(shuō)愛(ài)她。因?yàn)槟憧梢韵矚g很多女人,但你只會(huì)愛(ài)上一個(gè),這一點(diǎn)符合編譯原理上講的局部性法則。
            如果你只是把它當(dāng)作一碗飯吃,我就會(huì)很不爽了。
            當(dāng)然,我只是一個(gè)純粹做技術(shù)的,而且做的不純。語(yǔ)言風(fēng)格只是對(duì)事不對(duì)人:),請(qǐng)大家不要人身攻擊啊,我很無(wú)辜:)

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 12:14 by jyfish
            @adsf
            這位朋友不會(huì)是被面試的朋友吧?

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 12:37 by yafare
            看了文章感覺(jué)挺惡心的,寫過(guò)mmx,sse2的是不是也要bs DWORD copy呢。

            第一次面試別人心情激動(dòng)可以理解,但是這樣貶低別人表現(xiàn)自己的睿智就有問(wèn)題了。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 12:47 by Fox
            @yafare
            不怕無(wú)知,但怕無(wú)畏,我也不是沒(méi)栽過(guò),也不是沒(méi)被BS過(guò),雖然資質(zhì)愚鈍,但我一直在努力,如果真愿意做技術(shù),有人給你指出來(lái),你應(yīng)該懷著感恩的心:)

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 13:14 by kacy16
            謝謝 Fox和羅賓李的回答,讓我開(kāi)拓了思路.

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 13:38 by Colin
            面試啊。。。現(xiàn)在的學(xué)生也挺慘的
            學(xué)校學(xué)不到東西。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 13:58 by winsty
            應(yīng)該多問(wèn)些實(shí)用的問(wèn)題
            而不是刁難人的問(wèn)題

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 14:29 by www.helpsoff.com.cn
            呵呵,也看出博主的水平了,其他的先不說(shuō),人也真是夠矯情的...

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 17:51 by 空明流轉(zhuǎn)
            最近回帖的怎么都開(kāi)始喜歡噴人了。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-21 18:55 by cppexplore
            是啊 有問(wèn)題就問(wèn)題本身探討 涉及到人身 甚至去猜測(cè)別人的水平 不利于解決問(wèn)題啊 來(lái)來(lái)回回凈扯蛋了

            # re: 不怕無(wú)知,但怕無(wú)畏[未登錄](méi)  回復(fù)  更多評(píng)論   

            2008-03-22 12:25 by 創(chuàng)
            我個(gè)人也認(rèn)為對(duì)memcpy,strcpy之類的庫(kù)函數(shù)實(shí)現(xiàn)只要考慮了判斷空指針,越界等問(wèn)題且實(shí)現(xiàn)正確的話,可以有90分以上了,因?yàn)槲易约阂膊粫?huì)從字節(jié)對(duì)齊之類的去考慮這個(gè)問(wèn)題了,在筆試面試的時(shí)候想的最多的還是健壯性和正確性.

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-22 14:42 by 酷勤網(wǎng)
            那些重點(diǎn)標(biāo)志的顏色不好,遮住了,看不見(jiàn) 汗

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-23 20:31 by Kevin Lynx
            今天才來(lái)回這個(gè)貼。

            沒(méi)想到 空明流轉(zhuǎn) 和 飯中淹(叔叔:D)也在這里。

            fox下次面試千萬(wàn)不可考別人struct, union的sizeof問(wèn)題,太BT了。不可倒確實(shí)應(yīng)該考面試者自己認(rèn)為自己好的東西。我也有點(diǎn)鄙視明明不會(huì)卻說(shuō)會(huì)的人,態(tài)度不端正。

            # re: 不怕無(wú)知,但怕無(wú)畏[未登錄](méi)  回復(fù)  更多評(píng)論   

            2008-03-23 20:42 by CppExplore
            struct, union的sizeof問(wèn)題這個(gè)才是常識(shí)性的問(wèn)題,尤其對(duì)于網(wǎng)絡(luò)間傳輸?shù)臄?shù)據(jù)結(jié)構(gòu),這是必須知道的基礎(chǔ)性問(wèn)題。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-24 08:43 by haoren
            滾一邊兒去,sb。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-24 13:07 by cxu2003
            樓主, 告訴你一句金玉良言, 合適的才是最好的.

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-24 13:08 by cxu2003
            水平高的你欣賞不了, 用不了也是一種浪費(fèi), 對(duì)人對(duì)已都是如此, 這和水平太低是一個(gè)道理.

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-24 13:11 by cxu2003
            一個(gè)人用心編程, 程序就會(huì)合格,健壯, 但一個(gè)人能不能用心編程, 并不取決于他的教養(yǎng), 水平. 而是你的制度, 說(shuō)句不好聽(tīng)的, 只有不合格的公司,沒(méi)有不合格的程序員. 這幾年你就會(huì)明白我說(shuō)的話, 如果明白,就說(shuō)明你沒(méi)這方面的天賦.

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-24 16:04 by Yule Snow
            可能是說(shuō)者無(wú)意,聽(tīng)者有心了,相對(duì)無(wú)意者,這有心者是不是更如他們自己所言呢?

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-25 15:57 by megax
            一個(gè)優(yōu)秀的程序員不應(yīng)該只去關(guān)注one byte one byte之類的,這些東西你去面試別人,別人可能暫時(shí)不會(huì),但是其實(shí)是只要看了,馬上就會(huì)的那種,所以這些東西并沒(méi)有太大的說(shuō)服力。你應(yīng)該找的人是這樣的,要有較強(qiáng)的學(xué)習(xí)能力和溝通能力,以及受過(guò)良好的教育。不要只去扣著那幾個(gè)算法,沒(méi)意思。。。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-26 10:46 by 某Programmer
            如果考這么多細(xì)節(jié)記憶性的內(nèi)容,我可以連出100個(gè)問(wèn)題,讓樓主一個(gè)也不會(huì)。

            總有些人,平常說(shuō)的冠冕堂皇,什么希望別人提高解決問(wèn)題能力;到了面試別人時(shí),就喜歡用類庫(kù)式和圖書(shū)館式的細(xì)節(jié)問(wèn)題去難為別人,程序設(shè)計(jì)不同領(lǐng)域中這么多細(xì)節(jié),某人知道的另一個(gè)人不知道是完全正常的。喜歡對(duì)別人挑挑揀揀,事后還在這評(píng)價(jià)顯擺的人,除了欠揍,還欠扁,應(yīng)該拖出門外,用軍車連撞108遍然后再用超載大貨車軋上300個(gè)來(lái)回。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-26 10:53 by Fox
            照樓上的意思,我該怎么做?
            我只想找個(gè)可以干活的人,妄談其他都是多余的。
            如果找老婆只為傳宗接代,是不是生育能力最重要呢?你告訴我感情可以培養(yǎng)、孩子可以領(lǐng)養(yǎng),不都TM扯淡呢嗎?

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-26 10:55 by Fox
            一天兩天懷不上,是正常的,可以接受的。
            如果100天都懷不上,你是不是還有性趣?

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-26 11:12 by Jeck
            @某Programmer
            說(shuō)的很對(duì),樓主不應(yīng)該出來(lái)顯擺,如果你是被面試者,你的心態(tài)絕對(duì)不一樣。因?yàn)槲覜](méi)當(dāng)過(guò)面試官,所以我只有被面試者的心理。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-26 15:15 by raof01
            @某Programmer
            你的說(shuō)法有失偏頗。有些時(shí)候可以通過(guò)一些技術(shù)上的細(xì)節(jié)問(wèn)題來(lái)考interviewee,此時(shí)并不是要考他的記憶,而是看他的思考方式。也就是那句話:你的答案是錯(cuò)的,但我喜歡你的思考方式。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-26 17:05 by 某Programmer
            沒(méi)看到樓主給來(lái)的人提示和思考的機(jī)會(huì)。

            建議樓主變變考題,和具體工作問(wèn)題結(jié)合或算法與思維性的都可以。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-26 18:12 by zhubin
            你會(huì)寫最大流么?

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-26 19:48 by Yule Snow
            每個(gè)人都有自己的背景和位置,“屁股決定腦袋”并不錯(cuò)吧,在其位就謀其事沒(méi)錯(cuò)吧?

            伏爾泰說(shuō):我不同意你的話,但是我愿意誓死捍衛(wèi)你說(shuō)話的權(quán)利。說(shuō)話可以,那是自由,但是妄加揣測(cè)別人的意思,再給人帶上帽子,再噴一痛,這就不可取了。
            這世界就是面試的少,被面的多,但是多了也不一定就是強(qiáng)勢(shì)。心情可以理解,做法不能贊同。
            都平常心吧。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-27 11:39 by yafare
            @Fox

            [quote]
            @kacy16
            主要就是字節(jié)對(duì)齊和DWORD(4B) copy。
            字節(jié)對(duì)齊主要體現(xiàn)在首地址不是4的倍數(shù)和尾部不足4B的情況處理,這種情況下,你只能按Byte copy了。
            [/quote]

            [quote]
            void *mymemcpy( void *src, void *des, size_t len )
            {
            char *tempsrc = (char *)src;
            char *tempdes = (char *)des;

            size_t offset = len / 4;
            for( size_t i=0; i<offset; ++i )
            {
            *(unsigned long *)tempdes = *(unsigned long *)tempsrc;
            tempdes += sizeof(unsigned long);
            tempsrc += sizeof(unsigned long);
            }

            offset = len - len % 4;
            for( size_t i=0; i<offset; ++i )
            {
            *tempdes++ = *tempsrc++;
            }
            return des;
            }
            [/quote]

            你這個(gè)算法考慮首地址不是4的倍數(shù),也就是地址是否對(duì)齊了么?既然沒(méi)考慮那為什么要在回復(fù)特別提一下呢?

            所有的crt實(shí)現(xiàn)里面 memcpy 都是不考慮 Overlapping 的。
            如果覺(jué)得地址可能會(huì)重疊,那么你需要的是 memmove。
            看來(lái)你是沒(méi)看過(guò)vc的crt源碼啊。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-27 11:42 by yafare
            @Yule Snow

            說(shuō)話要經(jīng)過(guò)大腦,別人批評(píng)的是什么你看清楚了么?

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-27 13:31 by Fox
            @yafare
            沒(méi)有看過(guò)crt源碼
            至于給出的代碼沒(méi)有考慮首地址對(duì)齊,是因?yàn)槲铱催^(guò)云風(fēng)的這篇blog,上面對(duì)于4B以上,沒(méi)有首地址對(duì)齊的匯編。

            而且VC默認(rèn)結(jié)構(gòu)成員對(duì)齊是8B,所以就把前面一點(diǎn)去掉了。

            如果真看過(guò)這樣源碼的我還不會(huì)去問(wèn)了,就像我沒(méi)有看過(guò)memcpy和memmove(當(dāng)然,剛才看了),我只是給出自己的理解,我自己還是偏向于問(wèn)題的思考重于知識(shí)的學(xué)習(xí)。所以你提到mmx、sse、crt源碼,可以展示知識(shí)面的廣和深,卻不能完全滿足對(duì)人的考察,當(dāng)然,如果對(duì)這個(gè)點(diǎn)能夠掌握這樣的知識(shí),至少可以說(shuō)明他動(dòng)過(guò)腦子了。

            ;memcpy.asm - contains memcpy and memmove routines
            ;
            ; Copyright (c) Microsoft Corporation. All rights reserved.
            ;
            ;Purpose:
            ; memcpy() copies a source memory buffer to a destination buffer.
            ; Overlapping buffers are not treated specially, so propogation may occur.
            ; memmove() copies a source memory buffer to a destination buffer.
            ; Overlapping buffers are treated specially, to avoid propogation.

            ;memcpy - Copy source buffer to destination buffer
            ;
            ;Purpose:
            ; memcpy() copies a source memory buffer to a destination memory buffer.
            ; This routine does NOT recognize overlapping buffers, and thus can lead
            ; to propogation.
            ; For cases where propogation must be avoided, memmove() must be used.
            ;
            ; Algorithm:
            ;
            ; void * memcpy(void * dst, void * src, size_t count)
            ; {
            ; void * ret = dst;
            ;
            ; /*
            ; * copy from lower addresses to higher addresses
            ; */
            ; while (count--)
            ; *dst++ = *src++;
            ;
            ; return(ret);
            ; }
            ;
            ;memmove - Copy source buffer to destination buffer
            ;
            ;Purpose:
            ; memmove() copies a source memory buffer to a destination memory buffer.
            ; This routine recognize overlapping buffers to avoid propogation.
            ; For cases where propogation is not a problem, memcpy() can be used.
            ;
            ; Algorithm:
            ;
            ; void * memmove(void * dst, void * src, size_t count)
            ; {
            ; void * ret = dst;
            ;
            ; if (dst <= src || dst >= (src + count)) {
            ; /*
            ; * Non-Overlapping Buffers
            ; * copy from lower addresses to higher addresses
            ; */
            ; while (count--)
            ; *dst++ = *src++;
            ; }
            ; else {
            ; /*
            ; * Overlapping Buffers
            ; * copy from higher addresses to lower addresses
            ; */
            ; dst += count - 1;
            ; src += count - 1;
            ;
            ; while (count--)
            ; *dst-- = *src--;
            ; }
            ;
            ; return(ret);
            ; }

            這是給出的基本的算法,都是bytecopy的,但具體的實(shí)現(xiàn)不是這樣子的。
            下面是匯編實(shí)現(xiàn),考慮對(duì)齊的。
            ; - move x = ((4 - Dest & 3) & 3) bytes
            ; - move y = ((L-x) >> 2) dwords
            ; - move (L - x - y*4) bytes

            crt源碼:
            while (count--) {
            *(char *)dst = *(char *)src;
            dst = (char *)dst + 1;
            src = (char *)src + 1;
            感覺(jué)沒(méi)有使用dwordcopy。

            對(duì)于memcpy這個(gè)問(wèn)題,看不看crt源碼和匯編,相信很多人在我寫過(guò)這篇文章和前面的回復(fù)之后都可以知道怎么實(shí)現(xiàn)了。

            對(duì)于技術(shù)批評(píng),我會(huì)虛心,尤其是和你們的討論過(guò)程中,我還特意看了crt源碼和生成的匯編,所以,非常感謝,以后如果再跟別人講問(wèn)題的時(shí)候,自己還是要把問(wèn)題搞得頗為清楚才好。

            但對(duì)于人身攻擊和做人問(wèn)題,我就恕難忍受了。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-27 13:40 by Fox
            @yafare
            來(lái)這兒的每個(gè)人都是有大腦的,回復(fù)的人更是經(jīng)過(guò)大腦才說(shuō)過(guò)的話。

            我個(gè)人感覺(jué)我這篇blog和回復(fù)沒(méi)有任何惡意,而且初衷也是讓自己有時(shí)間反思一下自己,可以說(shuō),主要是寫給自己的。

            但很多回復(fù)的朋友認(rèn)為我是炫耀或者故意刁難,我實(shí)在冤枉。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-29 17:02 by 匯編和C程序員
            整個(gè)讀了一遍,也冒一泡。以前寫了幾十年程序孤獨(dú)慣了,也來(lái)熱鬧一下。
            覺(jué)得博主對(duì)被面試者并沒(méi)有故意刁難的意思。因?yàn)閷?duì)公司到底要招的是什么樣的人,看客并不清楚,所以,面試題是否合理也就無(wú)從談起。
            不過(guò)如果我要招的是普通C程序員,而且,我又特別想了解一下對(duì)方會(huì)不會(huì)用MEMCPY,我寧愿問(wèn)一下他MEMCPY這個(gè)函數(shù)的限制是什么,只要他告訴我兩個(gè)區(qū)域如果重疊可能出現(xiàn)異常,我會(huì)認(rèn)為他OK。
            如果我需要找的是個(gè)寫核心API的程序員,可能應(yīng)用運(yùn)行時(shí)百分之幾的時(shí)間都跑在這些核心函數(shù)上,我也許會(huì)要求他寫個(gè)什么算法或者給出他的想法。不過(guò),也許是所從事行業(yè)的原因,總的來(lái)說(shuō),我愿意要一個(gè)能寫出健壯可靠的程序的程序員,而不要一個(gè)能寫高效率但我看不懂的程序的程序員,因?yàn)楦咝式?jīng)常意味著難懂,難懂,意味著有錯(cuò)不容易發(fā)現(xiàn),發(fā)現(xiàn)了錯(cuò)也不容易修改,修改的時(shí)候也容易出錯(cuò),換個(gè)人也難以接手,我真羅嗦呀。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-03-30 19:14 by 現(xiàn)在的C++筆試題怎么都一樣
            哈哈~空類默認(rèn)有哪些函數(shù)~哈哈~這些是編譯器的事情~看過(guò)就會(huì)知道。
            另外,《深度探索C++對(duì)象模型》里關(guān)于這點(diǎn)似乎并沒(méi)提及吧?要么只說(shuō)了幾個(gè)字而已。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-04-01 12:57 by everspring79
            有些無(wú)語(yǔ)。身邊月薪過(guò)萬(wàn)的程序員,照樣對(duì)你說(shuō)的這些語(yǔ)言的基礎(chǔ)知識(shí)掌握得很差,但是一旦用到,絕不含糊。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-04-01 16:02 by w
            什么狗屁東東啊, 什么叫穩(wěn)定排序? 靠,寫了多少年的程序都沒(méi)聽(tīng)過(guò)這個(gè)鳥(niǎo)名詞
            現(xiàn)成的memcpy, 根據(jù)多種情況優(yōu)化的多版本不用, 你要自己寫一個(gè)爛方法

            # re: 不怕無(wú)知,但怕無(wú)畏[未登錄](méi)  回復(fù)  更多評(píng)論   

            2008-04-01 17:01 by oooooo
            lz剛面一個(gè)就這么裝了。。。

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-04-17 22:40 by 極光炫影
            memcpy和API的CopyMemory都不會(huì)考慮重疊的情況

            用memmove和MoveCopy可以解決

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-10-06 16:16 by 浪跡天涯
            學(xué)無(wú)止境...
            關(guān)鍵還是看態(tài)度與思考能力 不在于你掌握了多少 而在于你是否愿意去掌握
            很多東西不接觸不知道 一接觸大概很多人也能知道
            所以還得看崗位要求 不過(guò)對(duì)于基礎(chǔ)的東西 不要求100%知道
            但常用的經(jīng)常碰到的問(wèn)題應(yīng)該知道個(gè)八九不離十吧
            但很多問(wèn)題我還是不知道 碰到以后一google很快也能解決
            遇到問(wèn)題發(fā)現(xiàn)問(wèn)題解決問(wèn)題的能力最重要!

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-10-26 16:40 by 茫然無(wú)措
            其實(shí)LZ只是想指出來(lái)

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-10-31 16:18 by sufan
            @w
            沒(méi)有必要這么激動(dòng)吧,關(guān)于穩(wěn)定排序和不穩(wěn)定排序的問(wèn)題我想在任何一本數(shù)據(jù)結(jié)構(gòu)的書(shū)里面都會(huì)講到吧,而且博主也說(shuō)了:在嚴(yán)蔚敏老師的書(shū)里面確實(shí)是用的49這個(gè)例子,我還記得:為了講清楚這個(gè)道理,還在其中一個(gè)49的下面做了標(biāo)記,考察在各種排序算法中兩個(gè)49的相對(duì)位置會(huì)不會(huì)發(fā)生變化。。。至于你寫了這么久時(shí)間程序還不知道這個(gè)概念,我只能說(shuō),你運(yùn)氣太好了,說(shuō)不定下一次別人就有可能問(wèn)你這個(gè)問(wèn)題

            # re: 不怕無(wú)知,但怕無(wú)畏  回復(fù)  更多評(píng)論   

            2008-12-01 20:20 by jimsmorong
            這個(gè)面試者比我牛好多了
            久久www免费人成精品香蕉| 亚洲国产精品久久久久婷婷软件 | 青青热久久国产久精品 | 国产精品欧美久久久久天天影视| 久久青青草原国产精品免费| 国产精品免费久久| 亚洲国产成人精品久久久国产成人一区二区三区综 | 久久精品夜夜夜夜夜久久| www.久久热.com| 久久性精品| 奇米影视7777久久精品| 国产精品久久久久无码av| 久久婷婷久久一区二区三区| 欧美精品丝袜久久久中文字幕| 无码任你躁久久久久久老妇App| 久久夜色精品国产噜噜噜亚洲AV| 国产福利电影一区二区三区,免费久久久久久久精 | 国产亚洲精品久久久久秋霞| 国产国产成人精品久久| 免费一级欧美大片久久网| 亚洲午夜久久久影院伊人| 亚洲天堂久久精品| 久久精品国产男包| 久久久久国产精品| 久久人人爽人人人人爽AV| 久久99精品国产99久久| 国产精品久久婷婷六月丁香| 久久99亚洲网美利坚合众国| 欧美久久一级内射wwwwww.| 97久久香蕉国产线看观看| 午夜精品久久久内射近拍高清| 国产精品久久自在自线观看| 偷窥少妇久久久久久久久| 国产日韩欧美久久| 精品久久久噜噜噜久久久| 久久久久99这里有精品10| 99久久婷婷国产综合精品草原| 久久人做人爽一区二区三区| 久久www免费人成精品香蕉| 亚洲国产精品久久66| 精品乱码久久久久久久|