我目前正在阅读有关C和汇编语言的书时遇到了一些麻烦。作者使用32位环境,而我使用64位。问题是作者经常使用
printf("%08x", &var);
Run Code Online (Sandbox Code Playgroud)
打印在32位上正常工作的地址。但是,当我在64位上运行此程序时,我只得到地址的一半,而%p
却给了我整个地址。我当然使用%016x
代替%08x
。
作者仅%p
用于指针。那么我什么时候应该使用什么呢?
要在中打印指针printf
,根据C标准,使用%p
with void *
type是方法。
printf("%p", (void *)&var);
Run Code Online (Sandbox Code Playgroud)