float会有误差,比如赋了float a=0;a是有可能是0.000000001的.
MSDN中定义了一个这样的值
FLT_EPSILON 1.192092896e-07F
if(x > -0.000001 && x < 0.000001)
2.编译器位扩展
#ifndef HelloMac_Header_h
#define HelloMac_Header_h
typedef struct
{
int a:2;
int b:2;
int c:1;
} test;
class DD
{
public:
static void fun()
{
test t;
t.a = 1;
t.b = 3;
t.c = 1;
printf("%d\n",t.a);
printf("%d\n",t.b);
printf("%d\n",t.c);
}
};
#endif
输出为1,-1,-1。3个都是有符号数int。这是位扩展问题
01
11
1
,编译器自动进行符号扩展。
3.