C #中的数据类型定义类似宏的函数

C #中的数据类型定义类似宏的函数,c,macros,int,c-preprocessor,primitive-types,C,Macros,Int,C Preprocessor,Primitive Types,我正在尝试制作一个计算2N和2N-1的宏。这将是: #define b(n) (2 << (n)) #define a(n) ((b(n))-1) #定义b(n)(2OPunsigned long int,然后在宏中使用该类型 #define b(n) (1UL<<((unsigned)(n))) #定义b(n)(1ULOPunsigned long int,然后在宏中使用该类型 #define b(n) (1UL<<((unsigned)(n))) #

我正在尝试制作一个计算2N和2N-1的宏。这将是:

#define b(n) (2 << (n))
#define a(n) ((b(n))-1)

#定义b(n)(2OP
unsigned long int
,然后在宏中使用该类型

#define b(n) (1UL<<((unsigned)(n)))

#定义b(n)(1ULOP
unsigned long int
,然后在宏中使用该类型

#define b(n) (1UL<<((unsigned)(n)))

#定义b(n)(1ULDon't you't want
#定义b(n)(1u将其更改为
#定义b(n)(2ULL@Roberto…或
((uintmax)1)@chux:是的,1是正确的,而不是2,你是对的(1感谢Brian的编辑!你不想
#定义b(n)(1u将其更改为
#定义b(n)(2ULL@Roberto…或
((uintmax)1)@chux:是的,1是正确的,而不是2,你是对的(感谢Brian的编辑!添加UL确实解决了问题,事实上,我正要通知我解决了问题铸造(无符号长整型),而1添加UL解决了问题,事实上我正要通知我解决了问题铸造(无符号长整型)前面的1