From 799629c5d227b84f86dd0a8d72beb7e2f3219f21 Mon Sep 17 00:00:00 2001 From: zcy <290198252@qq.com> Date: Wed, 5 Jan 2022 16:41:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=BB=E6=9C=BA=E5=AD=97?= =?UTF-8?q?=E8=8A=82=E5=BA=8F=E5=88=A4=E6=96=AD=E5=8A=A9=E6=89=8B=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- general/inc/utils.h | 19 ++++++++++++++----- general/src/utils.cpp | 13 ++++++++++++- test/src/cpp11/log_test.cpp | 16 ++++++++++++++++ 3 files changed, 42 insertions(+), 6 deletions(-) diff --git a/general/inc/utils.h b/general/inc/utils.h index 58e2ba8..bb127ac 100644 --- a/general/inc/utils.h +++ b/general/inc/utils.h @@ -9,6 +9,11 @@ #include using namespace std; +// 字节序选择 +typedef enum{ + BIG_ENDIAN, // 大端 + LITTLE_ENDIAN // 小端 +}BYTE_ORDER; typedef enum { ENV_WINDOWS = 1, @@ -27,13 +32,17 @@ inline ENV_SYS CurrentEnvSys(); inline ENV_COMPILER CurrentEnvCompiler(); #define RELEASE_MEMORY(x) \ - if(nullptr == x) \ - { \ - delete(x); \ - x = nullptr;\ - } + do { \ + if(nullptr == x) \ + { \ + delete(x); \ + x = nullptr;\ + } \ + }while(0) + string itos(int x); +BYTE_ORDER HostByteOrder(); // 限制float精确度 float LimitFloat(float in,int size); diff --git a/general/src/utils.cpp b/general/src/utils.cpp index f2a2d93..4149236 100644 --- a/general/src/utils.cpp +++ b/general/src/utils.cpp @@ -64,7 +64,7 @@ inline ENV_COMPILER CurrentEnvCompiler() // 限制float有效位 -float LimitFloat(float in,int size){ +float LimitFloat(float in,int size) { uint64_t tmp = 1; for(int i = 0;i < size;i++){ tmp = tmp*10; @@ -76,3 +76,14 @@ float LimitFloat(float in,int size){ return float(integer)/tmp; } + + +BYTE_ORDER HostByteOrder(){ + short x = 0x1234; + uint8_t y = *((uint8_t*)(&x)); + if(y == 0x34){ + return BYTE_ORDER::LITTLE_ENDIAN; + }else{ + return BYTE_ORDER::BIG_ENDIAN; + } +} diff --git a/test/src/cpp11/log_test.cpp b/test/src/cpp11/log_test.cpp index 6e07587..3b54b07 100644 --- a/test/src/cpp11/log_test.cpp +++ b/test/src/cpp11/log_test.cpp @@ -31,7 +31,23 @@ float LimitFloat(float in,int size){ return float(integer)/tmp; } +typedef enum{ + BIG_ENDIAN = 1, // 大端 + LITTLE_ENDIAN // 小端 +}BYTE_ORDER; + +BYTE_ORDER HostByteOrder(){ + short x = 0x1234; + uint8_t y = *((uint8_t*)(&x)); + if(y == 0x34){ + return BYTE_ORDER::LITTLE_ENDIAN; + }else{ + return BYTE_ORDER::BIG_ENDIAN; + } +} + int main(){ + std::cout<<"byteorder "<