随笔分类 -  C

1 2 下一页
柔性数组
摘要:1、零长度数组概念 0长度数组, 也叫柔性数组。 用途 : 长度为0的数组的主要用途是为了满足需要变长度的结构体 struct Packet { int state; int len; //cData就是柔性数组 char cData[0]; //这里的0长结构体就为变长结构体提供了非常好的支持 } 阅读全文
posted @ 2022-02-08 17:08 裸睡的猪
do{......}while(0)的妙用
摘要:在Linux内核和其它一些著名的C库中有许多使用do{...}while(0)的宏定义。这种宏的用途是什么?有什么好处? Google的Robert Love(先前从事Linux内核开发)给我们解答如下: do{...}while(0)在C中是唯一的构造程序,让你定义的宏总是以相同的方式工作,这样不 阅读全文
posted @ 2022-02-08 16:32 裸睡的猪
signal和alarm实现不精确的定时功能
摘要:1、alarm()函数 引用头文件:#include <unistd.h>; 函数标准式:unsigned int alarm(unsigned int seconds); 功能与作用:alarm()函数的主要功能是设置信号传送闹钟,即用来设置信号SIGALRM在经过参数seconds秒数后发送给目 阅读全文
posted @ 2021-07-27 10:43 裸睡的猪
c语言daemon守护进程
摘要:1、守护进程定义 守护进程(daemon)是指在后台运行的,没有控制终端与之相连的进程。它独立于控制终端,周期性地执行某种任务。 Linux的大多数服务器就是用守护进程的方式实现的。如web服务器进程http等。守护进程在后台运行,类似于Windows中的系统服务。 2、守护进程的特点 Linux系 阅读全文
posted @ 2021-07-21 10:13 裸睡的猪
C语言getopt函数的详细解析
摘要:1、头文件 #include <getopt.h> #include <stdlib.h> #include <unistd.h> 2、函数原型 int getopt(int argc,char * const argv[ ],const char * optstring); 返回值为int类型,其 阅读全文
posted @ 2021-07-17 14:18 裸睡的猪
c语言popen介绍
摘要:1、函数定义 #include <stdio.h> FILE * popen(const char *command , const char *type ); int pclose(FILE *stream); 2、函数说明 popen()函数通过创建一个管道,调用fork()产生一个子进程,执行 阅读全文
posted @ 2021-07-17 10:32 裸睡的猪
c语言内存管理
摘要:一、数据存放区 1、bss段未初始化或者初始化为0的全局变量,存放在bss段。全局变量只占运行时的内存空间,不占用文件空间;在整个程序运行期间,bss数据一直存在。2、data段初始化为非0的全局变量,存放在data段;全局变量不仅占用运行时的内存空间,而且还占用文件空间;在整个程序运行期间,dat 阅读全文
posted @ 2020-11-13 15:45 裸睡的猪
c语言内存操作优化
摘要:1. 使用乘法代替除法。如果不需要较高的精度,使用float代替double。 2. 如果一个函数内部会频繁地使用全局变量,可以使用局部变量作为全局变量的拷贝。 3. 栈总是保持对齐在4字节边界(32位CPU),局部变量定义为char或short并不能带来存储空间上的节省,且会降低变量访问速度。因此 阅读全文
posted @ 2020-11-12 11:24 裸睡的猪
C语言性能优化
摘要:1、基本优化 (1)全局变量全局变量绝不会位于寄存器中。使用指针或者函数调用,可以直接修改全局变量的值。因此,编译器不能将全局变量的值缓存在寄存器中,但这在使用全局变量时便需要额外的(常常是不必要的)读取和存储。所以,在重要的循环中我们不建议使用全局变量。如果函数过多的使用全局变量,比较好的做法是拷 阅读全文
posted @ 2020-11-12 11:06 裸睡的猪
C语言位运算使用技巧
摘要:1、判断奇偶数 void odd_even(int n) { if(n & 1 == 1) { printf("n是奇数!\n"); } } 2、交换两个数字 int swap(int x, int y) { x = x ^ y; y = x ^ y; x = x ^ y; } 基于异或运算的如下性 阅读全文
posted @ 2020-11-11 20:07 裸睡的猪
strncpy函数
摘要:strncpy 是 C语言的库函数之一,来自 C语言标准库,定义于 string.h。 char *strncpy(char *dest, const char *src, int n) 把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回dest。 格式 函数原型 阅读全文
posted @ 2020-09-05 14:41 裸睡的猪
C获取系统中CPU核数
摘要:1、在Linux下获取CPU核数 linux下可以通过linux系统提供的sysconf()来获取当前CPU个数,sysconf在头文件unistd.h中声明。 sysconf函数中输入参数_SC_NPROCESSORS_CONF和_SC_NPROCESSORS_ONLN均可以获取系统CPU个数。 阅读全文
posted @ 2020-08-19 16:30 裸睡的猪
sscanf函数
摘要:C 库函数 - sscanf() C 标准库 - <stdio.h> 描述 C 库函数 int sscanf(const char *str, const char *format, ...) 从字符串读取格式化输入。 参数 str -- 这是 C 字符串,是函数检索数据的源。 format -- 阅读全文
posted @ 2020-05-15 14:06 裸睡的猪
ioremap函数
摘要:一、 ioremap() 函数基础概念 几乎每一种外设都是通过读写设备上的相关寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: a -- I/O 映射方式(I/O-mapped) 典型地,如X 阅读全文
posted @ 2020-05-15 11:20 裸睡的猪
kmalloc、kzalloc和vmalloc
摘要:kmalloc 函数原型: void *kmalloc(size_t size, gfp_t flags); kmalloc() 申请的内存位于物理内存映射区域,而且在物理上也是连续的,它们与真实的物理地址只有一个固定的偏移,因为存在较简单的转换关系,所以对申请的内存大小有限制,不能超过128KB。 阅读全文
posted @ 2020-05-15 11:09 裸睡的猪
C语言 snprintf函数
摘要:一、sprintf() 头文件:#include <stdio.h>作用:将一个格式化的字符串输出到一个目的字符串中,原型:int sprintf(char *str, char * format [, argument, ...]);参数:str为要写入的字符串;format为格式化字符串,与pr 阅读全文
posted @ 2020-05-15 10:51 裸睡的猪
C语言 memset函数
摘要:1. memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组, c:是赋给buffer的值, count:是buffer的长度. 这个函数在socket中多用于清空数组.如:原型是memset(b 阅读全文
posted @ 2020-05-15 10:08 裸睡的猪
dpdk初始化
摘要:rte_eal_init │ ├──rte_cpu_is_supported:检查cpu是否支持 │ ├──rte_atomic32_test_and_set:操作静态局部变量run_once确保函数只执行一次 │ ├──pthread_self() 获取主线程的线程ID,只是用于打印 │ ├──e 阅读全文
posted @ 2019-12-25 20:09 裸睡的猪
结构体变量、结构指针变量、结构数组作为函数的参数
摘要:结构体变量、结构指针变量、结构数组作为函数的参数应用实例分析 struct stud { long int num; float score; }; /*结构体变量作为函数的参数,修改之后的成员值不能返回到主调函数*/ void funvr(struct stud t) { t.num=2000101; t.score=71.0; } /*结构体数组作为... 阅读全文
posted @ 2019-09-03 15:12 裸睡的猪
extern "C"
摘要:extern "C" extern "C" LuChenQun edited this page Mar 30, 2019 · 3 revisions 在C++中常在头文件见到extern "C"修饰函数,那有什么作用呢? 是用于C++链接在C语言模块中定义的函数。 C++虽然兼容C,但C++文件中 阅读全文
posted @ 2019-08-27 17:53 裸睡的猪

1 2 下一页