`
ah_fu
  • 浏览: 227927 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

MinGW(windows下的GCC)的一个BUG:long long类型打印错误

阅读更多
    在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。
分享到:
评论
1 楼 subool 2009-04-19  
看了一下,又google一些贴子,发现是LZ的问题,把两个long long 都改成%I64d,就正常了。

printf("a=%d  b=%d  c=%u  d=%I64d  e=%I64d  a=%d\n", a, b, c, d, e, a);

结果:
a=1  b=2  c=3  d=4  e=5  a=1

相关推荐

    GCC编译器mingw版本v10.0.0

    MinGW(Minimalist GNU on Windows),将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可以使用一些 Windows 不...

    mingw64+gcc-9.3.0

    Mingw64是MinGW(Minimalist GNU for Windows)的一个版本,专为64位Windows系统设计。这个软件包集合包含了多个重要的开发工具,如GCC(GNU Compiler Collection)、binutils、GDB(GNU Debugger)以及Make,它们是...

    mingw64 32 gcc编译器安装包

    MingW64 32位GCC编译器安装包是一个为Windows操作系统提供的开源工具集,主要用于在Windows环境下构建和编译原生的32位C/C++程序。它基于GNU Compiler Collection (GCC),是一个强大的多语言编译器,支持C、C++、...

    mingw64 windows gcc g++

    Mingw64是Windows平台上的一个开源开发环境,它提供了GCC(GNU Compiler Collection)和G++(GNU C++编译器)等工具链,使得开发者能够在Windows系统上编写和编译遵循POSIX标准的C和C++程序。Mingw64的名字由...

    gcc6.3.0版本的mingw离线安装压缩包

    MingW是Minimalist GNU for Windows的缩写,它是一个可自由使用且开源的Windows上的GNU编译工具集合,主要用于在Windows系统下构建C和C++等语言的应用程序。GCC(GNU Compiler Collection)则是MingW的核心组件,是...

    MinGW (gcc9.2.0-2) 解压即可使用

    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.rar

    MinGW-W64 GCC-8.1.0是针对Windows平台的一个开源的GCC(GNU Compiler Collection)版本,专为64位和32位应用程序的开发设计。GCC是一套广泛使用的编程语言编译器,包括C、C++、Objective-C、Fortran、Ada和Go等。...

    MinGW(gcc4.9.3)

    MinGW,全称为 Minimalist GNU for Windows,是一个可移植的GCC(GNU Compiler Collection)环境,专为在Windows操作系统上编译原生的Windows程序而设计。MinGW4.9.3是该工具集的一个版本,它包含了GCC 4.9.3这个...

    mingw+gcc-8.3.0-x64

    MingW(Minimalist GNU for Windows)是一个开源项目,旨在为Windows操作系统提供一套完整的GNU工具集,包括GCC(GNU Compiler Collection)、GDB(GNU Debugger)、binutils等,使得开发者能够在Windows环境下进行C...

    MinGW64 GCC 8.1

    MinGW64 GCC 8.1 是一个针对Windows平台的开源编译器工具集,它基于GNU Compiler Collection (GCC) 的8.1版本。GCC是一个广泛使用的编译系统,能够编译C、C++、Objective-C、Fortran、Ada等多种编程语言。在MinGW64 ...

    MinGW64-V10.2 Windows GCC 64 位

    MinGW64-V10.2 是一个针对Windows平台的GCC(GNU Compiler Collection)64位版本的构建,主要用于在Windows环境下编译和构建原生的64位应用程序。GCC是一套开源的、跨平台的编译器工具链,包含了C、C++、Fortran、...

    MinGW 64位 gcc 4.9.2

    MinGW (Minimalist GNU for Windows) 是一个开源项目,它为Windows操作系统提供了GNU工具集,包括C、C++和其他编程语言的编译器和开发工具。MinGW64是MinGW的一个扩展,专为64位Windows环境设计,提供与MinGW相同的...

    mingw-gcc-4.7.2-msys-win32

    MingW-GCC-4.7.2-MSYS-Win32是一个专为Windows系统设计的开源工具集,它使得开发者能够在Windows环境下编译和构建GNU工具链的程序。这个版本特别强调的是其轻量级特性,相较于之前的版本,它的体积更小,但功能并未...

    MinGW-w64 gcc5.4.0

    MinGW-w64 GCC 5.4.0是针对Windows平台的一个开源的GNU Compiler Collection(GCC)版本,专为64位和32位应用程序的编译设计。它提供了对C、C++、Fortran、Ada等编程语言的支持,允许开发者在Windows环境下使用GCC...

    MinGW64-V9.2 Windows GCC 64 位

    MinGW64-V9.2 是一款针对Windows操作系统编译64位程序的工具集,主要包含GNU Compiler Collection (GCC) 的最新版本。GCC是一套广泛使用的开源编译器,支持多种编程语言,如C、C++、Fortran、Objective-C等。MinGW64...

    mingw-w64-8.1.0 多版本,windows下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是异常处理方案 ...

    mingw64编译i器,gcc,g++编译,tmd64-gcc4.9.2

    - MingW64是GCC在Windows上的一个实现,它提供了与Linux环境下类似的开发环境,使得Windows开发者可以使用熟悉的命令行工具进行编译工作。 - MingW64包含了头文件、库和工具,用于在Windows上构建原生的64位应用程序...

    MinGW_gcc7.3.0_x86_64_offline离线安装包

    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

    Mingw64 GCC是Windows平台上的一个开源编译工具链,它基于GNU Compiler Collection (GCC) 并且针对x86_64架构进行了优化。Mingw-w64是Mingw的扩展版本,增加了对64位系统的支持,为开发者在Windows环境下构建和调试...

    windows,MinGw64,gcc

    MinGW64提供了一个可以在Windows环境下编译和执行原生Windows程序的GCC编译器。这个环境不仅包括了C和C++的编译器,还包含了一些相关的开发工具,如链接器、调试器等。在下载并解压文件后,你会得到一个名为"MinGW...

Global site tag (gtag.js) - Google Analytics