Ant*_*ony 2 c macros c-preprocessor
我正在尝试使用该#define指令将所有"ulong"更改为"unsigned long".这是一个例子:
#define ulong unsigned long
ulong idCounter = 0;
Run Code Online (Sandbox Code Playgroud)
可悲的是,我认为最终用"无符号"代替ulong,而不是"unsigned long".我试过"#define ulong(unsigned long)",但这也不起作用.
Joh*_*itb 15
更好地使用typedef.您的宏可能失败的原因是 - 它在某些地方可能在语法上无效.考虑:
double x = calc();
ulong v = ulong(x);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,你得到
unsigned long v = unsigned long(x);
Run Code Online (Sandbox Code Playgroud)
这是无效的,因为使用的强制转换表单与您命名类型的方式不兼容(它必须包含一个更简单的表单,如单个单词).使用typedef:
typedef unsigned long ulong;
Run Code Online (Sandbox Code Playgroud)