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