在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。
分享到:
相关推荐
MinGW(Minimalist GNU on Windows),将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可以使用一些 Windows 不...
Mingw64是MinGW(Minimalist GNU for Windows)的一个版本,专为64位Windows系统设计。这个软件包集合包含了多个重要的开发工具,如GCC(GNU Compiler Collection)、binutils、GDB(GNU Debugger)以及Make,它们是...
MingW64 32位GCC编译器安装包是一个为Windows操作系统提供的开源工具集,主要用于在Windows环境下构建和编译原生的32位C/C++程序。它基于GNU Compiler Collection (GCC),是一个强大的多语言编译器,支持C、C++、...
Mingw64是Windows平台上的一个开源开发环境,它提供了GCC(GNU Compiler Collection)和G++(GNU C++编译器)等工具链,使得开发者能够在Windows系统上编写和编译遵循POSIX标准的C和C++程序。Mingw64的名字由...
MingW是Minimalist GNU for Windows的缩写,它是一个可自由使用且开源的Windows上的GNU编译工具集合,主要用于在Windows系统下构建C和C++等语言的应用程序。GCC(GNU Compiler Collection)则是MingW的核心组件,是...
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(GNU Compiler Collection)版本,专为64位和32位应用程序的开发设计。GCC是一套广泛使用的编程语言编译器,包括C、C++、Objective-C、Fortran、Ada和Go等。...
MinGW,全称为 Minimalist GNU for Windows,是一个可移植的GCC(GNU Compiler Collection)环境,专为在Windows操作系统上编译原生的Windows程序而设计。MinGW4.9.3是该工具集的一个版本,它包含了GCC 4.9.3这个...
MingW(Minimalist GNU for Windows)是一个开源项目,旨在为Windows操作系统提供一套完整的GNU工具集,包括GCC(GNU Compiler Collection)、GDB(GNU Debugger)、binutils等,使得开发者能够在Windows环境下进行C...
MinGW64 GCC 8.1 是一个针对Windows平台的开源编译器工具集,它基于GNU Compiler Collection (GCC) 的8.1版本。GCC是一个广泛使用的编译系统,能够编译C、C++、Objective-C、Fortran、Ada等多种编程语言。在MinGW64 ...
MinGW64-V10.2 是一个针对Windows平台的GCC(GNU Compiler Collection)64位版本的构建,主要用于在Windows环境下编译和构建原生的64位应用程序。GCC是一套开源的、跨平台的编译器工具链,包含了C、C++、Fortran、...
MinGW (Minimalist GNU for Windows) 是一个开源项目,它为Windows操作系统提供了GNU工具集,包括C、C++和其他编程语言的编译器和开发工具。MinGW64是MinGW的一个扩展,专为64位Windows环境设计,提供与MinGW相同的...
MingW-GCC-4.7.2-MSYS-Win32是一个专为Windows系统设计的开源工具集,它使得开发者能够在Windows环境下编译和构建GNU工具链的程序。这个版本特别强调的是其轻量级特性,相较于之前的版本,它的体积更小,但功能并未...
MinGW-w64 GCC 5.4.0是针对Windows平台的一个开源的GNU Compiler Collection(GCC)版本,专为64位和32位应用程序的编译设计。它提供了对C、C++、Fortran、Ada等编程语言的支持,允许开发者在Windows环境下使用GCC...
MinGW64-V9.2 是一款针对Windows操作系统编译64位程序的工具集,主要包含GNU Compiler Collection (GCC) 的最新版本。GCC是一套广泛使用的开源编译器,支持多种编程语言,如C、C++、Fortran、Objective-C等。MinGW64...
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是异常处理方案 ...
- MingW64是GCC在Windows上的一个实现,它提供了与Linux环境下类似的开发环境,使得Windows开发者可以使用熟悉的命令行工具进行编译工作。 - MingW64包含了头文件、库和工具,用于在Windows上构建原生的64位应用程序...
MinGW_gcc7.3.0_x86_64_offline MinGW离线安装包,适合windows 64位系统,GCC版本为7.3.0 x86_64-7.3.0-release-win32-seh-rt_v5-rev0.7z
Mingw64 GCC是Windows平台上的一个开源编译工具链,它基于GNU Compiler Collection (GCC) 并且针对x86_64架构进行了优化。Mingw-w64是Mingw的扩展版本,增加了对64位系统的支持,为开发者在Windows环境下构建和调试...
MinGW64提供了一个可以在Windows环境下编译和执行原生Windows程序的GCC编译器。这个环境不仅包括了C和C++的编译器,还包含了一些相关的开发工具,如链接器、调试器等。在下载并解压文件后,你会得到一个名为"MinGW...