![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
linux_C语言
记录工作中用过的和不会的C语言以及相关问题
你说啥都对
这个作者很懒,什么都没留下…
展开
-
函数指针
#include <stdio.h>#include <string.h>#include <stdlib.h>typedef struct STTest{ int cmd; void (*PTRFUN)(void); }sttest;void func1(void){ printf("func1\n");}void func2(void){ printf("func2\n");}const sttest arr[] = { {原创 2021-03-09 15:11:05 · 85 阅读 · 0 评论 -
通讯校验
通讯校验: 在一个m位m二进制数据序列之后附加一个n位二进制校检码,构成一个总长为m+n的二进制序列。一、奇偶校检:每个字节的校检码与该字节(包括校检码)中1的个数对应。二、累加和校检:每个数据包的校检码为该数据包中所有数据忽略进位的累加和。三、CRC-xx校检:每个二进制序列的校检码为该序列与所选择的多项式模2除法的余数。常用的CRC码的生成多项式为:CRC8=X8+X5+X4+1CRC-CCITT=X16+X12+X5+1CRC16=X16+X15+X5+1CRC12=X.原创 2020-11-30 23:40:25 · 717 阅读 · 0 评论 -
自己常用的函数
函数原型:int snprintf(char* dest_str,size_t size,const char* format,...);(1) 如果格式化后的字符串长度 < size,则将此字符串全部复制到str中,并给其后添加一个字符串结束符('\0');(2) 如果格式化后的字符串长度 >= size,则只将其中的*(size-1)*个字符复制到str中,并给其后添加一个字符串结束符('\0'),返回值为欲写入的字符串长度。...原创 2020-11-26 10:49:18 · 93 阅读 · 0 评论 -
管道、指针的联合使用
#include <stdio.h>#include<unistd.h>int main(int argc, const char* argv[]){ int Ret; char buf[] = "123123123123121231232122321312"; char * pread = NULL; char * pwrite = buf; int pipetest[2]; if(pipe(pipetest) < 0) { pr原创 2020-08-14 17:59:31 · 203 阅读 · 0 评论 -
24位bmp顺时针旋转/逆时针旋转90度C语言
#include <stdio.h>#include <string.h>#include <stdlib.h>#define BYTE1 __attribute__((packed, aligned(1)))//biSizeImage=(biWidth*biBitCount+31)/32*4*biHeight//跨度应该4对其,而并不是32对其int main(){ typedef struct FILEHEADER { short原创 2020-06-01 11:24:29 · 1364 阅读 · 0 评论 -
自己用到的swap交换函数
自己写了一个旋转代码,但是被批旋转交换部分占用内存过多。所以记录一下。原创 2020-05-16 09:44:27 · 219 阅读 · 0 评论 -
我转载的所有博客,用到了继续加
博客对我来说是学习知识的作用,原创和转载只要学会知识才是目的所以专门做个超链接目录,以供我方便查看和学习回顾makefile使用总结C/C++代码编写规范九大排序算法总结socket选项总结setsocketopt...转载 2020-05-05 11:06:14 · 241 阅读 · 0 评论 -
.a和.so文件的制作和使用
制作 main.c, test.c, test.h 文件(将.c .h放在同一个文件夹下)生成动态库.sogcc test.c -fPIC -shared -o libtest.so使用.so#gcc main.c -L./hehe/ -lfunc4 -o test#export LD_LIBRARY_PATH=$(pwd)/hehe //在终端执行的gcc main.c ...原创 2020-05-04 15:24:02 · 520 阅读 · 0 评论 -
大小端相关
小端:数据低位放在地址的低位大端:数据高位放在地址的高位#include <stdio.h>int main(){ int x=0x12345678; //x的低位为78 unsigned char *xp = (char *)&x; printf("x 16进制打印: %x \n",x); for(int i=0; i<4; i++) { p...原创 2020-04-27 10:21:28 · 193 阅读 · 0 评论 -
C语言32关键字以及const、static、typedef、struct、union、enum用法
typedef struct _Str_D{ int tmp1; char ch1; union{ struct{ int tmp2; }str1; struct{ short tmp3; char ch2; c...原创 2019-11-06 11:18:13 · 420 阅读 · 0 评论 -
C语言结构体的1字节对齐(代码实现)
#include <stdio.h>#define BYTE1 __attribute__((packed, aligned(1))) // aligned(几字节对齐数)typedef struct //默认4字节对齐{ int num1; char ch1; int num2; char ch2;}Str_four;typed...原创 2019-11-05 13:56:56 · 6336 阅读 · 0 评论