如何在C++中定义常量?

2024-01-11

我通过Mingw在windows上编译了一个linux程序。然而,转换并不完美。 例如,在 Windows 上,输出是这样的(我得到“zu”而不是实数):

Approximated minimal memory consumption:
Sequence        : zuM
Buffer          : 1 X zuM = zuM
Table           : 1 X zuM = zuM
Miscellaneous   : zuM
Total           : zuM

事实证明,Mingw 不支持 %zu,但它提供了一种解决方法。在他们的web site http://sourceforge.net/p/mingw-w64/bugs/377/他们说:

由于您使用的是 Microsoft 的实现,因此这永远不会起作用。 直接使用mingw_printf或者之前将USE_MINGW_ANSI_STDIO定义为1 包括stdio.h。

因此,我在程序中进行了搜索,发现 cdhit-common.h 是唯一具有 #include 行的文件。因此,我在该行上方定义了 USE_MINGW_ANSI_STDIO 并编译:

#include<iostream>
#include<fstream>
#include<iomanip>
#include<cstdlib>
#define USE_MINGW_ANSI_STDIO 1
#include<stdio.h>
...

它可以编译,但程序仍然输出“zu”而不是数字。我所做的可以吗?为什么没有效果?

注意:使用 USE_MINGW_ANSI_STDIO 的解决方案适用于 mingw64,而我使用 mingw。我希望这两个平台都适用。


我现在在谷歌上搜索到的宏是:__USE_MINGW_ANSI_STDIO。尝试一下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在C++中定义常量? 的相关文章

随机推荐