我想設置一個無效的值爲-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