![帮助 GCC 在 C89 中进行编译](https://linux22.com/image/883904/%E5%B8%AE%E5%8A%A9%20GCC%20%E5%9C%A8%20C89%20%E4%B8%AD%E8%BF%9B%E8%A1%8C%E7%BC%96%E8%AF%91%20.png)
我必须用 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);
}