如何在C++中定义常量
How to define a constant in C++?
我通过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,但它提供了一个变通方法。在他们的网站上,他们说:
这将永远不会起作用,因为您正在使用Microsoft的实现。直接使用mingw_printf或在之前将Use_mingw_ANSI_STDIO定义为1包括标准时间
所以,我在我的程序中搜索了一下,发现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
。试试看。
您正在设置一个预处理器标志。这意味着当编译器读取<stdio.h>
时,它将把USE_MINGW_ANSI_STDIO
设置为1。这可能在编译器指令#if
或#ifdef
中使用。
通常最好将这些标志放入编译标志中,例如
CCD_ 6而不是代码。
(注意:可能是-D__USE_MINGW_ANSI_STDIO=1
)
如果你真的把它放进代码中,那么要么
- 在总是包含在任何其他内容之前的标题中,例如一些"与平台相关"的标题
- 在文件中包含任何其他内容之前
其中一个C++流标头可能使用<stdio.h>
实现
相关文章:
- 定义常量变量的最佳方法
- 如何在C++中定义常量指针数组?
- 如何在C++中正确定义常量
- 在哪里定义常量促销
- 在 C# 中定义常量
- 替换 C 代码宏并在C++代码中定义常量
- 为什么我可以在较小的范围内重新定义常量
- 如何在C++中打印已定义常量的内存地址
- 使用来自其他方法和 #define 的函数定义常量
- 如何使用命名变量定义常量右值引用参数的默认值
- 定义常量 scope_refptr() 是否有意义
- 定义常量变量是否会使您的程序更小
- 我是否应该为代码中的重复文字定义常量
- C++ 对已定义常量的未定义引用
- 在标头中定义常量字符串数组
- 在库中定义常量变量 pi
- 自定义迭代器和自定义常量迭代器之间的转换
- 定义常量变量在头文件中不起作用
- 如何在C++中定义常量
- 如何在类的头文件中定义常量双精度?