什麼是最快的方法來清零unsigned int?最快的方法爲零
我目前只是將值設置爲0,但我不知道是否有任何技巧來清零變量?我目前需要幾個時鐘週期。我使用的是標準8051處理器,如果有幫助,我需要將兩個不同的變量歸零。
什麼是最快的方法來清零unsigned int?最快的方法爲零
我目前只是將值設置爲0,但我不知道是否有任何技巧來清零變量?我目前需要幾個時鐘週期。我使用的是標準8051處理器,如果有幫助,我需要將兩個不同的變量歸零。
微觀優化導致微觀結果。
你可能會用變量xor來實現零。很可能你的編譯器已經這樣做了,如果不是更快的話。
爲人類編寫代碼,不要浪費任何精力來優化不需要優化的東西。當你想把零分配給變量時,將零分配給變量:x = 0;
使一個正確的程序比使快速程序更正確更容易。
我一定會接受這個建議,但是這個項目特別關於優化當前存在的東西。除了我自己之外,這個代碼不應該被其他人看到。 –
@JoeWanja正在處理硬件寄存器。在編寫啓動ROM控制檯和NT設備驅動程序後,我可以從經驗中得知代碼不適用於人類。這適用於任何作品。 – octopusgrabbus
是的,我明白了。 [tag:c]標籤讓我困惑。 – LihO
首先嚐試實施一種計時方法,即對包含相關代碼的代碼塊進行計時,如果您還沒有這樣做。
然後,嘗試var = 0;並使用在列表中生成彙編程序的編譯器開關。然後爲XOR解決方案做同樣的事情。它代表了一些額外的工作,但是你會在那裏得到結果。
我相信編譯器會爲你優化這種事情。請記住,微觀優化會導致微觀結果。
你確定你沒有更好的機會來優化嗎? – delnan
在C?怎麼樣:'x = 0;' – Mysticial
設置爲'0'應該已經很快了。你真的失去了對變量賦值的性能嗎?看起來非常微小。 – birryree