我希望在编译时使用以下大小(使用Visual C ++ 2015和/或Intel C ++ 16.0)
这有可能改变吗?我当前的解决方案使用宏:
-0.46%
-10.5%
+103.1%
-88.26%
但它有问题,比如" int main"没有工作......我无法定义"签署int" " unsigned int"因为宏名称不能有空格
编辑:我想这样做的原因是为了提高易读性(因此我不必编写int64_t ...)以及制作我使用的任何代码,使用int / char / short / long自动升级(重新编译时)到64/32/32/128位,无需直接修改。
答案 0 :(得分:1)
你不能这样做。实现这一目标的唯一正确方法是引入自己的类型并改为使用它们。
此外,当使用类似int
的类型时,除了标准所说的内容之外,你不能依赖于底层大小(例如,在int
的情况下,唯一的保证是它至少为16位)。你想要实现的是你不应该拥有的依赖,这将使你的代码完全不可移植。此外,我不明白为什么int64_t
比使用int
更不清晰。此外,您想要的重新定义会让其他开发人员意外,因此可能会导致错误。使用您自己的类型可以明确表示类型不同。
答案 1 :(得分:0)
在定义unsigned int时没有必要使用宏,您可以编写如下代码:
typedef unsigned int UINT;
现在您也可以编写如下代码:
#define UINT balabala