我怎麼可以(如果我可以)設置默認的int變量(在一個特定的程序)是unsigned int?定義默認int爲無符號int
我的意思是,如果int
是在程序中編寫的,編譯器將它視爲unsigned int
。
我的編譯器是gcc 4.6.2
編輯:我沒有被授權接觸的代碼。
我怎麼可以(如果我可以)設置默認的int變量(在一個特定的程序)是unsigned int?定義默認int爲無符號int
我的意思是,如果int
是在程序中編寫的,編譯器將它視爲unsigned int
。
我的編譯器是gcc 4.6.2
編輯:我沒有被授權接觸的代碼。
由於定義爲簽名類型(§ 6.2.5/4),您無法更改int
的默認簽名。考慮main
函數必須返回類型int
(§ 5.1.2.2.1/1),如果您以某種方式更改默認簽名,那麼main
將返回unsigned int
,這將導致未定義的行爲,使整個應用程序相對無用。
不能創建一個宏,因爲如果int
擴大到unsigned int
,然後如果你已經聲明unsigned int
地方,你將最終unsigned unsigned int
,這是不是有效的類型。
超級邪惡
#define int unsigned int
可以工作,但絕對不符合標準的,你可能需要讓你的編譯器是那麼嚴格(這是一件壞事)。
你可以做其他的事情是查找和替換的int
所有出現(沒有前面的unsigned
)和替換那些my_typedefed_int
並添加
typedef unsigned int my_typedefed_int
這是符合標準的,但更復雜,並且可能不是可能。
不知道這是個好主意......但也許是宏? – Mysticial 2012-01-03 21:27:53
你真的不應該那樣做。 – 2012-01-03 21:28:40
這似乎是一個非常糟糕的主意。 – 2012-01-03 21:28:57