在WINDOWS下使用MinGW调试程序的时候,发现一个GCC的BUG。请先看下面的代码:
#include <stdio.h>
int main()
...{
short a = 1;
int b = 2;
unsigned int c = 3;
long long d = 4;
unsigned long long e = 5;
printf(" a=%d b=%d c=%u d=%lld e=%llu a=%d ",
a, b, c, d, e, a);
printf("e=%llu ", e);
return 1;
}
上面的代码输出什么?预想的结果应该是:
a=1
b=2
c=3
d=4
e=5
a=1
e=5
用MinGW编译代码,运行程序,输出的结果令人惊讶:
a=1
b=2
c=3
d=4
e=0
a=5
e=5
可见,单独输出long long类型是没有问题的,但是当long long类型出现在格式字符串的中间的时候,就会影响后面一个输出。
我测试了微软的cl.exe和linux下的GCC,都不存在这个BUG。
在此一记,请朋友们在WINDOWS下使用GCC的时候,注意long long类型的输出问题。
P.S 我使用的GCC版本是3.4.2, 希望更新的版本没有这个BUG。
分享到:
相关推荐
2020-03-16生成的 mingw-w64 7.0.0 gcc 9.3.0 binutils 2.34 gdb 9.1 make 4.2.1 目前只在x64版Win10测试通过。
MinGW\var\cache\mingw-get\packages 这个目录下有MinGW Installation Manager下载的安装包,gcc-ada-9.2.0-2-mingw32-bin.tar.xz、gcc-c++-9.2.0-2-mingw32-bin.tar.xz、gcc-core-9.2.0-2-mingw32-bin.tar.xz、gcc-...
MinGW-W64 GCC-8.1.0 windows 下gcc编译版本,压缩包里包括四个版本,分别是 x86_64-posix-sjlj x86_64-posix-seh x86_64-win32-sjlj x86_64-win32-seh posix和win32是os接口类型 sjlj, seh是异常处理方案 ...
包括最新生成的 mingw-w64 6.0.0 gcc 8.3.0 binutils 2.32 gdb 8.2.1 make 4.2.1 目前只在x64版Win10测试通过。
MinGW64-V7.2 Windows GCC 64 位
windows下使用vim(gVim)和gcc(MinGW):C/C++/Fortran/ObjC/Ada Compiler
C , C++语言在windows下的编译器,gcc版本6.30,支持C++14标准
2022-04-26生成 mingw-w64 10.0.0 gcc 11.3.0(mpfr-4.1.0 mpc-1.2.1 gmp-6.2.1 isl-0.24) gdb 11.2
MinGW-W64 GCC-8.1.0,vscode编译gcc必备,该资源集成了minGW64-8.1.0文件夹
MinGW(Minimalist GNU on Windows),将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可以使用一些 Windows 不...
GCC 10.1 已发布,这是一个重要版本,也是将代码仓库从 SVN 完全切换至 Git 后发布的首个主要版本。 详细的说明参见 https://gcc.gnu.org/gcc-10/changes.html https://gcc.gnu.org/onlinedocs/10.1.0/ MinGW 上...
gcc6.3.0版本的mingw离线安装压缩包,可以在无联网的环境下使用,直接解压即可,然后添加至环境变量
mingw和msys的最新版,gcc 4.7.2 这个版本的mingw相较以前的版本体积小
MinGW64-V8.1 Windows GCC 64 位
MinGW 自动安装工具下载于Http://sourceforge.net/project/showfiles.php?group_id=2435 在安装过程中会从网络上下载安装包,如果网络不好可能会出现安装失败等现象。
预编译Mingw64位,下载自google code achive
MinGW64位版本4.9.2,默认编译出来是64位的,下载解压就可以直接使用,需要将MinGW的bin路径加到系统环境变量PATH里。
一句话来概括:MinGW 就是 GCC 的 Windows 版本 。 但是,在windows环境下使用gcc/g++编译器总会存在这样那样的问题,比如使用cin或者scanf输入中文,输出就变成了乱码等问题,本资源版本是由由WinLibs维护的开源...
window下的gcc环境,解压文件之后得到 MinGw,将 ../MinGw\mingw64\bin 配置到path路径即可使用
MinGW64-V9.2 Windows GCC 64 位