
C语言
Liu-Eleven
纸上得来终觉浅,绝知此事要躬行。
展开
-
linux 进程间通信之信号
需求:进程A正常运行,当进程B启动后,需要通知进程A结束。进程A:#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<unistd.h>#include<signal.h>#include<wait.h>//自定义的信号处理函数void my_sig(int sig){ if(SIGRTMIN == sig) {原创 2021-06-24 15:27:03 · 356 阅读 · 0 评论 -
linux c编程小技巧之获取某一位的宏
#define GET_BIT(x, bit) ((x & (1 << bit)) >> bit) /* 获取第bit位 */原创 2020-11-18 17:26:28 · 770 阅读 · 0 评论 -
关于字节对齐
原文地址:https://mp.weixin.qq.com/s/AXyeM62YjR3THem4pz9WRQ下图是从原文摘抄过来:数据类型 16位编译器 32位编译器 64位编译器 char 1字节 1字节 1字节 char* 2字节 4字节 8字节 short int 2字节 2字节 2字节 int 2字节 4字节 4字节 unsigned int 2字节 4字节 4字节原创 2020-10-12 10:56:42 · 315 阅读 · 0 评论 -
linux c编程 int转16进制
分高低位进行取值: int checkSum = 7793; printf("checkSum = %#X \n " , checkSum); int xl= checkSum & 0xff ; int xh = (checkSum & 0xff00) >> 8; printf("xl = %#X \n " , xl); printf("xh = %#X \n " , xh);运行结果:checkSum = 0X原创 2020-05-31 17:33:45 · 1083 阅读 · 0 评论 -
C语言把256位二进制转为16进制
需求: 有256点数据,每个点有两个取值范围,0表示黑色,1表示白色,然后要把这256个点打包成32个BYTE。void make_data_package(char buff[] , long out[]){ char tempBuffer[8] = {0}; char *end ; for (int i=0 , targetIndex =0, tIndex =0; i<256; i++ , tIndex++ ) { ...原创 2020-05-31 12:34:35 · 3590 阅读 · 0 评论 -
sizeof指针和数组
int a[10] = {0 , 1 , 2, 3 , 4 , 5, 6, 7 , 8 , 9}; int *b = a; int (*d)[10]= &a; int c; //sizeof(数组名):返回数组所有元素占有的内存空间字节数。即计算整个数组的大小 qDebug()<<"---------a="<<...原创 2020-04-02 09:32:15 · 1374 阅读 · 0 评论