0
作爲標題提示,本質上我通過聯合將char數組轉換爲unsigned long int(或者更確切地說,讀爲unsigned long int)。使用聯合來讀取char數組作爲無符號long int
union {
char buffer[8];
unsigned long int buffer_ui;
} char_array_ui;
我把8個字符讀入char數組,然後再把這8個字符的值作爲unsigned long int返回。 (對於那些好奇的人,這是因爲我正在從/ dev/urandom中讀取字符)。 這是安全的嗎?我的計劃中是否有可能存在的任何問題?
如果是C++ 11,'long long int'保證爲64位,所以在這種情況下,你需要'unsigned long long int'。 – 2013-03-13 22:17:08
@TimothyShields我認爲這個問題是從'unsigned long long'編輯爲'unsigned long',所以我也改變了答案。無論如何,'long long int'具有**最小** 64位大小。 – SomeWittyUsername 2013-03-13 22:23:39
謝謝 - 但請,你可以清楚地看到我沒有編輯我的問題! – JessMcintosh 2013-03-13 22:47:31