C语言
文章平均质量分 70
C语言点滴
农夫私房菜
这个作者很懒,什么都没留下…
展开
-
Linux修改调度策略和优先级
1. 在Linux系统中,线程和进程之于Linux系统内核调度器来说是一样的,线程会当做进程一样来参与调度,也可以说线程是内核调度的最小单元。2.子进程或子线程会继承父进程/线程的调度策略。原创 2023-10-27 18:26:47 · 701 阅读 · 0 评论 -
C++string与C语言字符串结合使用易错点总结
c/c++ string和字符串混用时容易出现的问题原创 2023-03-04 13:00:40 · 524 阅读 · 0 评论 -
TCP和UDP关于有无内核缓冲区的一点差异说明
tcp和udp通信关于内核有无缓冲区的一点说明原创 2022-12-18 14:24:22 · 422 阅读 · 0 评论 -
c和c++可变参数函数
c/c++可变参数函数原创 2022-09-14 16:35:47 · 357 阅读 · 0 评论 -
Linux C/C++开发知识点随笔
1. 对于非单个字节的整数值,不同的硬件结构对于其各个字节的存储顺序可能不同,这便有了大小端的说法。先存储(低内存地址)最高位的字节为大端,先存储最低位的字节为小端。2.有了大小端的差异,数据在本地和网络上传输便有了本地字节序和网络字节序。为了数据能够在网络主机之间传递并被对方正确理解,因此双方需规定一个数据传输的同一字节序,我们称之为网络字节序,它是大端的。主机字节序可能为大端也可能为小端。3.当我们调用htons()、ntohs()、htonl()、ntohl()时,其底层实现会判断我们的主机字原创 2022-04-15 17:00:56 · 367 阅读 · 0 评论 -
C语言指针易犯错误
1. 指针作为函数参数进行传递下面的代码本意是想在main中定义一个指针p,然后将其传给func_memory()函数,让func_memory函数申请一块内存,然后在main函数中对这块内存进行拷贝操作。如下的代码运行会产生“segment Fault”,程序直接崩溃。int main(void){ char *str = "hello world"; char *p = NULL; func_memory(p, strlen(str)+1); memcpy原创 2022-03-17 18:26:55 · 2213 阅读 · 0 评论 -
C语言结构体中char data[0]的用法
1. char data[0]的存在形式char data[0]的存在形式一般如下图中的伪代码所示,多数情况都是放在结构体的最后,其不占用结构的空间(sizeof(struct AAA)的结果不包含char xxx_data[0]),xxx_data[0]的存在只是一个指针的占位符,当结构体分配的指针分配的内存多于结构体本身应占有的内存时,多于的内存将会由这个 "xxx_data"的指针所指向,并且可以通过结构体去使用这块内存。这就类似相当于结构体“包含”了一段可变长的空间,从而克服了C语言结构体类原创 2022-02-23 19:37:34 · 2515 阅读 · 0 评论 -
C语言之指针的强制类型转换
int main(void){ typedef struct people { STUDENT stu; int num; }PEOPLE; PEOPLE stpeople; //定义这个结构体类型的变量 memcpy(stpeople.stu.name,"xiaoli",8); stpeople.s...原创 2020-03-07 18:52:14 · 505 阅读 · 0 评论 -
malloc函数
1.关于3个alloc函数(1)动态分配的内存实际上比消耗的堆栈空间要比所申请的大一些,因为除了要申请的空间外,还会有一段空间,而这个空间用于记录管理信息——分配块的长度、指向下一个分配块的指针等参数信息(而如果要是访问了这部分空间会出错)。所以频繁的malloc(0)实际上还是消耗了堆空间的。也会错在内存泄露的风险。...原创 2020-02-09 18:33:42 · 296 阅读 · 0 评论