帮助 GCC 在 C89 中进行编译

帮助 GCC 在 C89 中进行编译

我必须用 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);
}

相关内容