您将如何编写(在C/C++中)一个宏来测试整数类型(作为参数给出)是签名还是未签名?
#define is_this_type_signed (my_type) ...
Chr*_*isN 39
在C++中,使用std::numeric_limits<type>::is_signed.
#include <limits>
std::numeric_limits<int>::is_signed - returns true
std::numeric_limits<unsigned int>::is_signed - returns false
Run Code Online (Sandbox Code Playgroud)
请参阅http://msdn.microsoft.com/en-us/library/85084kd6(VS.80).aspx.
Fab*_*llo 26
如果您想要的是一个简单的宏,这应该可以解决问题:
#define is_type_signed(my_type) (((my_type)-1) < 0)
Run Code Online (Sandbox Code Playgroud)