你的 gcc 不提示,我这边的 gcc 提示说 lf 不对,应该是 Lf
main.c: In function ‘main’:
main.c:10:20: warning: format ‘%lf’ expects argument of type ‘double’, but argument 2 has type ‘long double’ [-Wformat=]
10 | printf("c=%6.2lf,s=%6.2lf",c,s);
| ~~~~~^ ~
| | |
| double long double
| %6.2Lf
main.c:10:29: warning: format ‘%lf’ expects argument of type ‘double’, but argument 3 has type ‘long double’ [-Wformat=]
10 | printf("c=%6.2lf,s=%6.2lf",c,s);
| ~~~~~^ ~
| | |
| | long double
| double
| %6.2Lf
人造人 发表于 2021-8-27 14:03
把 Lf 改成 f 然后
gcc -g -Wall -o main main.c
找到了一个帖子。。但是具体原因我不知道
https://blog.csdn.net/Hippocrates/article/details/104251373 逃兵 发表于 2021-8-27 14:22
试试这个
gcc -g -Wall -Wextra -o main main.c 人造人 发表于 2021-8-27 14:26
试试这个
也是这个
demo.c:10:12: warning: unknown conversion type character 'L' in format [-Wformat=]
demo.c:10:12: warning: too many arguments for format [-Wformat-extra-args]
demo.c:10:12: warning: unknown conversion type character 'L' in format [-Wformat=]
demo.c:10:12: warning: unknown conversion type character 'L' in format [-Wformat=]
demo.c:10:12: warning: too many arguments for format [-Wformat-extra-args]
我看到那个帖子说
问题产生原因:
VS Code默认使用了系统crt的printf函数。
这一方面我不太了解,需要再查查资料 逃兵 发表于 2021-8-27 14:25
找到了一个帖子。。但是具体原因我不知道
https://blog.csdn.net/Hippocrates/article/details/104251 ...
还真是编译器的 bug
在Dev-C++相关头文件中定义long double是12字节,但是Dev-C++的printf却认为long double是8字节,所导致无法正常输出long double类型,这算是Dev-C++的一个BUG。可以尝试换成cout来进行输出。
https://www.zhihu.com/question/64387466/answer/243989049 逃兵 发表于 2021-8-27 14:29
也是这个
把 Lf 改成 f 然后
gcc -g -Wall -Wextra -o main main.c 人造人 发表于 2021-8-27 14:31
把 Lf 改成 f 然后
gcc -g -Wall -Wextra -o main main.c
demo.c: In function 'main':
demo.c:11:12: warning: format '%f' expects argument of type 'double', but argument 2 has type 'long double' [-Wformat=]
printf("c=%6.2f,s=%6.2f\n",c,s);
^
demo.c:11:12: warning: format '%f' expects argument of type 'double', but argument 3 has type 'long double' [-Wformat=] 人造人 发表于 2021-8-27 14:30
还真是编译器的 bug
在Dev-C++相关头文件中定义long double是12字节,但是Dev-C++的printf却认为long...
谢谢大佬! 逃兵 发表于 2021-8-27 14:39
没办法了,就是不显示
可能是你的 gcc 太老了,我的 gcc (GCC) 10.2.0
$ PS1='$ '
$ gcc --version
gcc (GCC) 10.2.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$
页:
1
[2]