gpt4 book ai didi

c - 在 C 中将 Unsigned Long Long 类型转换为字符指针

转载 作者:太空宇宙 更新时间:2023-11-04 03:02:47 24 4
gpt4 key购买 nike

我有包含以下代码逻辑的遗留代码:

unsigned long long address; /* Its content = Some Address, not a normal value */

strcmp (address, (const char*)some_char_buffer);

这给出了 gcc 的警告。

有人可以建议一些将变量“地址”类型转换为字符指针的方法,以便它可以正确解码并且 gcc 不发出警告吗?

最佳答案

您的代码可能应该使用 uintptr_t 作为 address。 (我不认为该标准保证 unsigned long long 有足够的位来保存指针,即使它在实践中经常这样做。)

uintptr_t address = ...;
strcmp((const char *)address, some_char_buffer);

或者,如果你能忍受丑陋,

unsigned long long address = ...;
strcmp((const char *)(uintptr_t)address, some_char_buffer);

关于c - 在 C 中将 Unsigned Long Long 类型转换为字符指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9371819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com