我正在尝试使用#define指令将所有“ ulong”更改为“ unsigned long”。
这是一个例子:

#define ulong unsigned long
ulong idCounter = 0;


可悲的是,我认为最终将ulong替换为“ unsigned”而不是“ unsigned long”。我尝试了“ #define ulong(无符号长)”,但是那也不起作用。

最佳答案

最好使用typedef。您的宏可能失败的原因是-在某些地方在语法上可能无效。考虑:

double x = calc();
ulong v = ulong(x);


在这种情况下,

unsigned long v = unsigned long(x);


这是无效的,因为所使用的强制转换形式与您命名类型的方式不兼容(它必须包含一个更简单的形式,例如单个单词)。使用typedef:

typedef unsigned long ulong;

关于c - #define为无符号长,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1653332/

10-10 21:15