2011-03-04 55 views
2

我想知道如何在C中將64位值寫入內存。我正在進行嵌入式開發,並且爲了使某些內存功能正常工作,必須使用64位寫入來初始化內存區域。如何在C中寫入64位?

+1

memcpy怎麼樣? – 2011-03-04 12:23:45

+1

哪個CPU和編譯器?即你有64位寄存器,或者你將不得不僞造這個?你有64位int類型,例如在[stdint.h](http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stdint.h.html)中? – Rup 2011-03-04 12:28:18

+2

@Rup所以你解釋這個問題意味着OP想要原子寫入? – 2011-03-04 12:30:24

回答

5

這應做到:

#include <stdint.h> 

void write_64bit_zero_to(void *address) 
{ 
    *((uint64_t *) address) = 0; 
} 

,如果你的平臺不提供stdint.h,我敢肯定,它有類似的東西,只要架構實際上支持64位整數(其中,當然,你已經說過了)。有關該類型的更多信息,請參見this page

+1

@阿德里安你是正確的,它不是主要的記憶,它是我試圖建立的ECC。編譯器是gcc,平臺是mips – JohnB 2011-03-04 13:27:39

+0

@JohnB你的評論並沒有太多意義。 :) – unwind 2012-01-17 09:57:43