我想设置一个无效的值为-1 ..但我不喜欢神奇的数字..任何人都知道在哪里可以找到一组常见的常量。我正在VS6(ISH)工作。任何人都知道一个好的Windows常量列表的生命
我试图从网络上读取一个文件,并且我需要一个坏的值来显示文件的总大小,所以我知道如果我得到有效的信息。0是有效的大小,所以我可以'不要用那个。
哈珀谢尔比打在头上的指甲..只是一个小拇指。 他提到了Win32常数..这正是我在想。现在要找到一个链接:)
我想设置一个无效的值为-1 ..但我不喜欢神奇的数字..任何人都知道在哪里可以找到一组常见的常量。我正在VS6(ISH)工作。任何人都知道一个好的Windows常量列表的生命
我试图从网络上读取一个文件,并且我需要一个坏的值来显示文件的总大小,所以我知道如果我得到有效的信息。0是有效的大小,所以我可以'不要用那个。
哈珀谢尔比打在头上的指甲..只是一个小拇指。 他提到了Win32常数..这正是我在想。现在要找到一个链接:)
如果-1是在你的系统返回值的值无效,则应在内部定义它:
const int INVALID_FOO = -1
除非需要C兼容性,在这种情况下
#define INVALID_FOO -1
将是优选的。如果它是标准的MFC或Windows资源,请使用INVALID_HANDLE或其他Win32定义的常量之一。
一般认为0和1(正面为&为负)可以直接使用。
事实上,它可能会让你的代码变得更混乱,而不是使用变量。
更新:好的,你在我写回答后更新了你的问题。如果您以算术方式使用“-1”,则只需“-1”即可。如果你要返回一个错误代码(并且代码恰好是-1),那么你应该使用一个const。
const int INVALID_VALUE = -1;
你想用你自己的幻数-1伪装成一个Windows常量。这是非常具有误导性的。
假设我碰巧知道INVALID_HANDLE是0.可以使用INVALID_HANDLE初始化我的指针吗?
char *myMessage = INVALID_HANDLE;
这是怎么打击你的?
If bytes_read < 0
// error
EndIf
在VS中,创建一个新的Windows控制台应用程序项目。进入项目设置并打开浏览支持。创建一个C++文件并将其添加到项目中。类型:
#include <windows.h>
void main(void) {}
进入文件。编译它。现在在文件中输入INVALID_FILE_SIZE。右键单击它并转到INVALID_FILE_SIZE的定义。 VS会打开许多满足定义值的Windows头文件之一。请享用。
首先你应该使用一个无符号整型文件大小作为文件大小永远不会消极。现在一个无效的文件大小通常是最大INT所以在使用一个32位无符号整数的情况下,这将是为0xFFFFFFFF
即
const unsigned int INVALID_FILESIZE = 0xFFFFFFFF;
此外,如果这是在Windows中,WINDOWS.H定义无效的文件大小全部准备好(INVALID_FILE_SIZE)
如果要使用WinApi使用的常量,请查看WinError.h,WinUser.h和WinNT.h文件。
我不确定你在问什么?例如,你为什么不定义自己的常量? – hasen 2008-12-09 21:46:01
每个人都这样做..我可以做到这一点..但我宁愿使用标准的东西..就像当你SetLastError ...它总是更好IMHO使用WINERROR.H – baash05 2008-12-09 21:52:16
值讽刺的是,这个问题有INVALID_FILE_SIZE投票在此时此刻。让我们保持帽子的方式。 ;-) – 2008-12-09 22:11:11