0

无论我是在 32 位模式还是 64 位模式下编译,我都希望我的 long 为 8 个字节。我正在使用 MSVC,此时我不太关心跨平台性。我试着做类似的事情

#define long __int64

或者

typedef __int64 long;

但是第一个导致其他文件中出现大量编译错误,而第二个似乎编译器本身无法接受。

4

1 回答 1

0

我不会更改保留类型的默认行为。如果您喜欢并使用它,更好的做法是创建一个新类型。

考虑一下包含 thirdPartyLib 并且它的“h”文件具有类似内容的情况:

void func1(long number);

当您的代码包含“h”文件时,它会将“number”参数视为 64 位,但是当 lib 的原始“c”文件包含“h”时,它可以认为“number”是 32 位。这将导致联动阶段出现问题。

于 2013-02-24T12:02:17.630 回答