gpt4 book ai didi

c - GCC 在编译时不发出警告

转载 作者:太空狗 更新时间:2023-10-29 17:04:04 28 4
gpt4 key购买 nike

<分区>

以下代码编译并运行,但我希望在编译时出现警告:

#include <stdio.h>
#include <stdlib.h>

int main(void){

int x = 10;
printf("%p\n",&x);

return EXIT_SUCCESS;
}

GCC,from an online compiler带命令行参数

-Wall -std=gnu99 -O2 -o a.out source_file.c -pedantic -Wextra

编译时给出如下警告

source_file.c: In function ‘main’:
source_file.c:7:3: warning: format ‘%p’ expects argument of type ‘void *’, but argument 2 has type ‘int *’ [-Wformat=]
printf("%p\n",&x);

因为我没有在 &x 之前添加一个 (void*) 转换,因为 %p 需要一个 void 类型的参数* .但是当我使用

编译时
gcc SO.c -o so -Wall -Wextra -pedantic -std=c11

gcc SO.c -o so -Wall -Wextra -pedantic -std=c99

gcc SO.c -o so -Wall -Wextra -pedantic -std=c89

GCC(在我的 PC 中)在编译(再次在我的 PC 中)使用时发出警告

gcc SO.c -o so -Wall -Wextra -pedantic -std=gnu11

gcc SO.c -o so -Wall -Wextra -pedantic -std=gnu99

gcc SO.c -o so -Wall -Wextra -pedantic -std=gnu89

gcc SO.c -o so -Wall -Wextra -pedantic

我收到上述警告。为什么会这样?我的 GCC 版本是 4.8.1,我使用的是 Windows。我从控制台编译,即 cmd

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