当前位置:  开发笔记 > 编程语言 > 正文

用于测试整数类型是有符号还是无符号的宏

如何解决《用于测试整数类型是有符号还是无符号的宏》经验,为你挑选了2个好方法。

您将如何编写(在C/C++中)一个宏来测试整数类型(作为参数给出)是签名还是未签名?


      #define is_this_type_signed (my_type) ...

ChrisN.. 39

在C++中,使用std::numeric_limits::is_signed.

#include 
std::numeric_limits::is_signed  - returns true
std::numeric_limits::is_signed  - returns false

请参阅http://msdn.microsoft.com/en-us/library/85084kd6(VS.80).aspx.



1> ChrisN..:

在C++中,使用std::numeric_limits::is_signed.

#include 
std::numeric_limits::is_signed  - returns true
std::numeric_limits::is_signed  - returns false

请参阅http://msdn.microsoft.com/en-us/library/85084kd6(VS.80).aspx.



2> Fabio Cecone..:

如果您想要的是一个简单的宏,这应该可以解决问题:

#define is_type_signed(my_type) (((my_type)-1) < 0)


当唯一的变量是临时值0和-1时,怎么会有一个未初始化的变量?
推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有