如何将预处理器(宏)类型转换为输出int

one*_*day 0 c casting c-preprocessor

我有一个非常简单的宏,我只想将其输出类型转换为int.怎么做?

#define Numbits(A) (sizeof(A)*CHAR_BIT)
Run Code Online (Sandbox Code Playgroud)

我试过了:

#define int Numbits(A)({int val; val = sizeof(A)*CHAR_BIT; return val;})
Run Code Online (Sandbox Code Playgroud)

但它也行不通

Joh*_*136 7

你说这#define Numbits(A) (int)(sizeof(A)*CHAR_BIT)不起作用吗?