移位操作
int num = 12345678999;
printf("num:0x%x\n", num);
int num1 = (num >> (8 * 0)) & 0x000000ff ;
printf("num1:0x%x\n", num1);
int num2 = (num >> (8 * 1)) & 0x000000ff;
printf("num2:0x%x\n", num2);
int num3 = (num >> (8 * 2)) & 0x000000ff;
printf("num3:0x%x\n", num3);
int num4 = (num >> (8 * 3)) & 0x000000ff;
printf("num4:0x%x\n", num4);
num:0xdfdc1c97
num1 : 0x97
num2 : 0x1c
num3 : 0xdc
num4 : 0xdf
网络
网络有问题需要依次排查,ip,dns,网线连接
命名规范
如果是C++风格文件名和类名一致即开头大写驼峰式命名,例如 PlcThread
类成员变量,例如 n_slave_index_
如果是C语言风格则以下划线分割,例如 ers_common
函数名则小写开头驼峰式命名
类型长度
windows和linux下long类型长度
不同平台下C\C++数值数据类型长度如下:
类型 win32 win64 linux32 linux64
char 1 1 1 1
short 2 2 2 2
int 4 4 4 4
//long 4 4 4 8
long long 8 8 8 8
float 4 4 4 4
double 8 8 8 8
void* 4 8 4 8
typedef unsigned char BYTE;1
typedef unsigned short WORD;2
typedef unsigned long DWORD;4
typedef unsigned short wchar_t;2
typedef signed char int8_t;
typedef short int16_t;
typedef int int32_t;
typedef long long int64_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;