我必须用 C89 编译课程代码,我写了这段代码来看看它能否编译。我使用以下方法编译它:
gcc-std=c89-pedantic
#include<stdio.h>
int main(void)
{
int number;
printf("%p", &number);
}
这段代码在 gcc 版本 4.1.2 的系统上编译得很好,但在版本 5.3(Ubuntu 5.3)的机器上,它会给我错误
警告:格式“%p”需要类型为“void *”的参数,但参数 2 的类型为“int *”[-Wformat=]
如果有人能给我一个解决方法,我将不胜感激。谢谢
答案1
%p 期望为 void *,因此强制转换为 void * 即可。
#include <stdio.h>
int main(void)
{
int number;
printf("%p", (void *)&number);
}