我想无效的值设置为-1。但我不喜欢幻数..任何人都知道在哪里可以找到一组公共常量。我在VS6(ISH)工作。

我试图读取网络上的一个文件,我需要的总文件大小不好的价值,所以我知道,如果我得到了它有效的信息.. 0是一个有效的大小,所以我不能利用这一点。

哈珀Shelby的撞钉的头部..只是一点点拇指。 他提到的win32常数..这正是我在想。现在要找到一个链接:)

有帮助吗?

解决方案

#define BAD_VALUE -1

编辑:原来的问题没有上下文。修订后的问题,表明你想要一个无效的文件大小,因此寻找win32的常量。看看 WINDOWS.H 我想你寻找可能在的 WINDOWS.H 或它的一个子包括。用grep您的窗口包括目录; - )

其他提示

如果-1是在你的系统返回值的值无效,则应在内部定义它:

const int INVALID_FOO = -1

除非需要C兼容性,在这种情况

#define INVALID_FOO -1

将是优选的。如果它是一个标准的MFC或Windows资源时,使用INVALID_HANDLE或其他Win32定义的常数之一。

您想使用自己的幻数-1伪装成一个Windows不变。这是非常令人误解。

假设我碰巧知道INVALID_HANDLE为0是否确定与INVALID_HANDLE初始化我的指点?

char *myMessage = INVALID_HANDLE;

请问这个打击吗?

在VS,创建新的Windows控制台应用程序项目。走进项目设置和打开浏览支持。创建一个C ++文件,并将其添加到项目中。类型:

#include <windows.h>
void main(void) {}

到该文件中。编译它。现在键入INVALID_FILE_SIZE到文件中。右键点击它,INVALID_FILE_SIZE的转到定义。 VS会打开很多窗口的一个头完全定义的值的文件。享受。

首先就是作为一个文件的大小是永远不会负你应该使用unsigned int类型的文件大小。现在一个无效的文件大小通常是最大INT所以在使用的情况下的32比特无符号整型这将是0xFFFFFFFF的

const unsigned int INVALID_FILESIZE = 0xFFFFFFFF;

此外,如果这是在Windows中,WINDOWS.H定义无效的文件大小都准备好(INVALID_FILE_SIZE)

如果您想使用WINAPI使用的常量,检查出WinError.h中,WINUSER.H和WINNT.H文件。

它通常接受的0和1(正反转)是行直接使用。

在事实上,它可能会令你的代码变得更加令人困惑使用一个变量,而不是。

更新:OK,你更新你的问题后,我写了我的答案。如果您正在使用“-1”算术的方式,那么就“-1”是好的。如果您在返回错误代码(代码恰好是-1),那么你应该使用一个常量。

 const int INVALID_VALUE = -1;
If bytes_read < 0
    // error
EndIf
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top