我们路上遇见很多人
但不是所有人都会去同一个地方,有的人陪我们走过一段岁月,
也有人会陪我们走过岁岁年年,该是我们的跑也跑不掉,不该我们的求也求不得得失。
皆是缘来去一匆匆,花字向阳开,人中向前走。
有些人遇见了是种幸运,而有些人错过了才是幸运。
有些事我有经历过了,才会深刻地记住,时光,不会证明很多东西,
但会让我们看透很多东西。
人生很短,不妨尽心一点,从此去爱这山。
这水,这世间万物,和自己别再拘泥于,过往,余生不求深刻,只求简单
一念当下即是自在。
岁月深长,万物有期。
把圈子变小,把语速放缓,把心放宽,把生活打理简单,用心做好手边事,
该有的总会有,越努力,生活的你,有属于自己的风雨灿烂,
也愿余生守住所有的情绪,好好生活。
———————————— 一禅心灵庙语
#include<stdio.h>
int main()
{
int flag = 3;
if (3 == flag) {
printf("1\n");
}
else if (2 == flag)
{
printf("2\n");
if (1)
{
printf("HelloWorld\n");
}
}
else
{
printf("else\n");
}
return 0;
}
#include<stdio.h>
int func()
{
return 1;
}
int main()
{
if (func)
{
prinntf("推荐使用这种判断方式\n");
}
if (1 == func)
{
printf("不推荐使用这种判断方式\n");
}
return 0;
}
//
// stdbool.h
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// The C Standard Library <stdbool.h> header.
//
#ifndef _STDBOOL
#define _STDBOOL
#define __bool_true_false_are_defined 1
#ifndef __cplusplus
#define bool _Bool
#define false 0
#define true 1
#endif /* __cplusplus */
#endif /* _STDBOOL */
#include<stdio.h>
#include<stdbool.h> // 布尔值的使用需要导入该头文件
int main()
{
bool x = false;
printf("布尔值的大小:%d\n", sizeof(x));
printf("false的数值表示:%d\n", false);
printf("true的数值表示:%d\n", true);
return 0;
}
运行结果:
typedef unsigned long DWORD;
typedef int BOOL; // 这里********
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef float FLOAT;
typedef FLOAT *PFLOAT;
typedef BOOL near *PBOOL;
typedef BOOL far *LPBOOL;
typedef BYTE near *PBYTE;
typedef BYTE far *LPBYTE;
typedef int near *PINT;
typedef int far *LPINT;
typedef WORD near *PWORD;
typedef WORD far *LPWORD;
typedef long far *LPLONG;
typedef DWORD near *PDWORD;
typedef DWORD far *LPDWORD;
typedef void far *LPVOID;
typedef CONST void far *LPCVOID;
typedef int INT;
typedef unsigned int UINT;
typedef unsigned int *PUINT;
int main()
{
BOOL x = FALSE;
printf("布尔值的大小:%d\n", sizeof(x));
printf("FALSE的数值表示:%d\n", FALSE);
printf("TRUE的数值表示:%d\n", TRUE);
return 0;
}
运行结果
#include<stdio.h>
int main()
{
float x = 3.6f; // 这里注意;float类型加上后缀 f,因为 c中 小数默认是 double 类型的
double y = 3.6;
printf("float:%.50f\n", x);
printf("double:%.50f\n", y);
return 0;
}
运行结果
从上面 运行的结果 的我们可以发现其中 float 中的精度的丢失更大,double 的精度更高
因为精度损失问题,两个浮点数,绝对不能直接使用==进行相等比较判断的 。如下
#include<stdio.h>
int main()
{
double x = 1.0;
double y = 0.9;
printf("x:%.50f\n", x);
printf("y:%.50f\n", y);
printf("x - y :%.50f", x - y);
if ((x - y) == 0.1)
{
printf("x - y == 0.1 \n");
}
else
{
printf("x - y != 0.1 \n");
}
return 0;
}
运行结果
if ( x - y ) > (- 精度) && ( x- y ) < ( 精度 ) 绝对值 因为存在差值上的正负
{
}
if ( fabs (x - y )) < 精度 ) // fabs 求浮点数的绝对值,需要导入头文件 #include <math.h>
{
}
#define EPS 0.0000000001 // 注意定义宏不要加分号 ;
int main()
{
double x = 1.0;
double y = 0.9;
printf("x:%.50f\n", x);
printf("y:%.50f\n", y);
printf("x - y :%.50f\n", x - y);
if ((x - y) - 1.0 < EPS)
{
printf("x - y == 0.1 \n");
}
else
{
printf("x - y != 0.1 \n");
}
return 0;
}
运行结果。与上面的结果不同,这里是 x - y == 0.1 的
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//
// Constants
//
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#define DBL_DECIMAL_DIG 17 // # of decimal digits of rounding precision
#define DBL_DIG 15 // # of decimal digits of precision
#define DBL_EPSILON 2.2204460492503131e-016 // smallest such that 1.0+DBL_EPSILON != 1.0
#define DBL_HAS_SUBNORM 1 // type does support subnormal numbers
#define DBL_MANT_DIG 53 // # of bits in mantissa
#define DBL_MAX 1.7976931348623158e+308 // max value
#define DBL_MAX_10_EXP 308 // max decimal exponent
#define DBL_MAX_EXP 1024 // max binary exponent
#define DBL_MIN 2.2250738585072014e-308 // min positive value
#define DBL_MIN_10_EXP (-307) // min decimal exponent
#define DBL_MIN_EXP (-1021) // min binary exponent
#define _DBL_RADIX 2 // exponent radix
#define DBL_TRUE_MIN 4.9406564584124654e-324 // min positive value
#include<stdio.h>
#include<float.h> // 精度范围
#include<math.h> // 浮点数绝对值
int main()
{
double x = 1.0;
double y = 0.9;
printf("x:%.50f\n", x);
printf("y:%.50f\n", y);
printf("x - y :%.50f\n", x - y);
if ( (fabs(x-y) - 0.1 ) < DBL_EPSILON) // fabs 计算浮点数的绝对值,DEL_EPSILON 精度差
{
printf("x - y == 0.1 \n");
}
else
{
printf("x - y != 0.1 \n");
}
return 0;
}
运行结果
限于自身水平,其中存在的错误,希望大家给予指教,韩信点兵 —— 多多益善,谢谢大家,后会有期,江湖再见!