PeateChen
码龄7年
关注
提问 私信
  • 博客:29,826
    29,826
    总访问量
  • 暂无
    原创
  • 745,844
    排名
  • 6
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:福建省
  • 加入CSDN时间: 2017-10-11
博客简介:

qq_40585834的博客

查看详细资料
个人成就
  • 获得20次点赞
  • 内容获得1次评论
  • 获得58次收藏
创作历程
  • 2篇
    2018年
成就勋章
TA的专栏
  • 共享文件夹
  • Linux应用编程网络编程笔记
    1篇
  • JAVA
  • 生活
  • 杂类
  • C语言
    1篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

354人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

存储类相关的关键字简介(含static+链接属性)

auto                 修饰局部变量表示动态局部变量,分配到栈上。 register             一般修饰全局变量,编译器尽量将其分配到寄存器中,读写效率会很高,但是寄存器资源有限,不能所有变量       都放到寄存里。 extern                如果跨文件使用全局变量,就必须在本文件中用extern修饰再声明才能在...
原创
发布博客 2018.09.08 ·
103 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

自己制作静态/动态链接库并使用

详细内容跳转至博主:https://blog.csdn.net/freestyle4568/article/details/49817799 静态链接库      #vi mylib.c    //编辑库函数定义源码#include <stdio.h>void printfHello(void){ printf("Hello mylib
");}i...
原创
发布博客 2018.09.07 ·
124 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

大小端模式(共用体union测试、指针测试)

存储系统中的大小端模式 区分大小端      0x01     高位对数据低字节-------大端     B3     B2    B1    B0     01      00    00     00     高位对数据高字节-------小端     B3     B2    B1    B0     00      00     00    01  ...
原创
发布博客 2018.09.05 ·
577 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

内存对齐

转载:https://blog.csdn.net/markl22222/article/details/38051483           Wrote by mutouyun. (http://darkc.at/about-data-structure-alignment/) 指定内存对齐在C++98/03里,对内存对齐的操作在不同的编译器里可能有不同的方法。在MSVC中,一...
转载
发布博客 2018.09.05 ·
76 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

GCC编译过程

gcc编译内部其实集成了多个组件来实现编译预处理----->编译成汇编文件----->汇编------>链接1、预处理:   为编译前做准备工作,经过预处理后生成后缀为.i的文件,实际上还是C文件,   Linux下完成只预处理不编译:gcc -E xxx.c -o xxx.i    预处理主要完成的工作   (1).源代码中的注释经过预处理之后产生的.i文...
原创
发布博客 2018.09.05 ·
150 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

c语言中定义一个变量或常量时的内存分配

    一、栈内存       操作系统会为每个进程分配一定空间的栈内存,定义的局部变量会存储在自动分配的栈内存中,局部变量使用完毕后       地址会空出来用来再次被分配,但是这个地址所对应的存储内容还是上一次分配时所赋值的内容,不会被擦除,栈内       存是一个反复被覆盖写入而不擦除的的内存。栈内存大小有限,如果要存储大块数据就不要以局部变量的方式存储了。    二、堆内...
原创
发布博客 2018.08.29 ·
2711 阅读 ·
1 点赞 ·
3 评论 ·
12 收藏

数组指针与指针数组 、函数指针与指针函数

内容持续补充。。。。 int *p[5]      [ ]的优先级是最高的,先与p结合,那么首先上面的是一个数组,     数组里面存储的五个元素是int *类型                      指针数组 int (*p)[5]      ( )无视优先级,*先与p结合,那么p就是一个指针,     指向含有5个int型元素数组的的一个指针          ...
原创
发布博客 2018.08.26 ·
57 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

指针使用时的注意项

定义和初始化   int a=0;  int *p=&a;     //定义同时初始化   int a=0;  int *p=NULL;  p=&a;  //先定义然后初始化 注意两种方法中分别出现的*p=&a和p=&a      *p=&a只能出现在定义同时初始化这种情况下,这里应该将*p中的*结合int来理解:将a的地址付给int *类型的...
原创
发布博客 2018.08.26 ·
448 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

sizeof()和strlen() #define和typedef +(内联函数)

内容持续补充。。。。。一、区别 sizeof()     sizeof()不是函数而是运算符,作用是返回变量或者数据类型所占据的存储空间大小,可以让程序适应不同平台下    数据类型所占空间不一样的问题。 strlen()     传入值只能是字符串,计算字符串长度,这个长度不包括字符串结束的 "\0" char a[]={"hello"}; in...
原创
发布博客 2018.08.21 ·
78 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

函数传参

  一种高效的传参方法是直接使用函数操作全局变量,省去了常规传参时的开销,但是使用更多的是常规传参方式。如果所传参数很多,通常做法是打包成结构体,传结构体指针进去。  输入型参数,输出型参数    输入型参数:+const修饰的指针,函数内部不需要,也不能修改该值   输出型参数:不+const修饰的指针,经函数内部操作处理后输出   不是指针为输入型 数组传参...
原创
发布博客 2018.08.21 ·
87 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C语言实现简单多线程网络聊天室

所遇到的问题    1.线程资源的回收     一、服务器所创建的线程是分离式的,线程运行完毕(客户端挂了,断开连接)自动回收     二、客户端子线程不是分离式,需要手动回收,但是子线程进入了阻塞,无法自己跳出循环,如果ctrl+c结          束程序,子线程无法回收,自己采用的解决方法是:退出时置子线程循环开关为-1,再让服务器发送一个信号          过...
原创
发布博客 2018.08.14 ·
5108 阅读 ·
1 点赞 ·
10 评论 ·
37 收藏

C语言中的垃圾回收分析

      转自中国论文网:https://m.xzbu.com/8/view-7218540.htm     (通过公众号下载码下载,如果还存在版权问题请联系删除) 摘要:    C语言没有运行时库,无法自动压缩使用中的内存,缩小堆栈所需内存空间。若只申请内存,没有释放,势必造成系统内存不断减少、丢失。长时间的运行,最终导致系统死机。文章阐述了C语言垃圾产生的原因,并从引用计数、标记...
转载
发布博客 2018.08.11 ·
8964 阅读 ·
9 点赞 ·
1 评论 ·
21 收藏

线程同步—条件变量

条件变量通常配合互斥锁使用   条件变量主要包括以下基本函数:    pthread_cond_init(&cond,默认NULL);  //初始化   pthread_cond_wait(&cond);  /_timewait(&cond,超时时间);   pthread_cond_signal(&cond);发信号 /_broadcas...
原创
发布博客 2018.08.06 ·
54 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

多线程与互斥锁

转载自博主:https://blog.csdn.net/qq_27312943/article/details/79084781 有的linux版本没有包含以下函数的man手册,需要手动下载!Ubuntu下载方法:apt-get install manpages-posix-dev  互斥锁   主要作用是关键段代码保护,            上锁            访...
转载
发布博客 2018.08.05 ·
683 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

线程同步——信号量

   以一个简单的示例介绍线程创建,回收,同步。 双线程实现主线程获取用户输入并判断是否退出, 子线程统计每次输入字符串的字符数 /*双线程实现主线程获取用户输入并判断是否退出,子线程负责统计每次输入字符串的字符数*/#include <stdio.h>#include <string.h>#include <pthread.h>#in...
原创
发布博客 2018.08.04 ·
148 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

线程的创建,回收,取消

线程创建  int pthread_create(pthread_t *th, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);   参数一:输出型参数,相当于线程号,指向线程标识符的指针   参数二:用来设置线程属性   参数三:输入型参数,线程运行函数的地址   参数四:运行函...
原创
发布博客 2018.08.03 ·
619 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

线程(笔记)——线程的引入

   线程应该是进程的一个改进和提升,解决了进程间通信困难,和进程调度开销大的问题。    多线程程序在多线程的CPU上实现了真正意义上的并行操作pthread_create();    接收参数:举例:    创建一个线程分支;实现同时读取鼠标和键盘、    注意:编译时链接动态库   gcc  xxx  -lpthread#include<stdio.h>...
原创
发布博客 2018.08.02 ·
97 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

并发式IO的解决方案 非阻塞IO、多路复用IO和异步IO

非阻塞IO       以度键盘为例,键盘这个标准输入的fd已经被打开,使用fctrl函数来改变其属性,设置为非阻塞式(O_NONBLOCK)#include<stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <str...
原创
发布博客 2018.07.31 ·
322 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

多路复用I/O select()函数

转自:http://blog.sina.com.cn/s/blog_732784f70100tkjo.html     select()在SOCKET编程中还是比较重要的,可是对于初学SOCKET的人来说都不太爱用select()写程序,他们只是习惯写诸如 conncet()、accept()、recv()或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程...
转载
发布博客 2018.07.27 ·
64 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

alarm定时和pause函数

alarm闹钟         alarm(秒);         定时时间到则产生一个SIGALRM信号、         如果上一次调用alarm设置的时间未到,再次调用alarm并且时间设置为0,则是取消上一次的调用,不为0会被第二次          调用掩盖,第一次的定时无用。         内核只对每个进程维护一个alarm,后面的会掩盖前面的。void si...
原创
发布博客 2018.07.25 ·
130 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多