
C
Tony_Xian
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深度理解do{} while(0)语句的作用
在linux内核中常常会看到do{} while(0)这样的语句,有人疑惑,认为无意义,因为他只执行一次,加不加do{} while(0)小过失完全一样的,那你就错了,没有完全了解do{} while(0)。下面看一个例子:定义一个宏:#define SAFE_FREE(p) do{free(p); p=NULL} while(0)假设这里去掉do{....} while(0),及定...转载 2020-01-30 13:25:30 · 277 阅读 · 1 评论 -
atoi()和itoa()函数详解以及C语言实现
atoi()函数atoi()原型: int atoi(const char *str );函数功能:把字符串转换成整型数。参数str:要进行转换的字符串返回值:每个函数返回 int 值,此值由将输入字符作为数字解析而生成。 如果该输入无法转换为该类型的值,则atoi的返回值为 0。注意:使用该函数时要注意atoi返回的是int类型,注意输入str的范围不要超出int类型的范围...转载 2020-01-14 09:51:20 · 336 阅读 · 0 评论 -
malloc函数分配内存失败的原因
malloc()函数分配内存失败的原因: 1. 内存不足。 2. 在前面的程序中出现了内存的越界访问,导致malloc()分配函数所涉及的一些信息被破坏。下次再使用malloc()函数申请内存就会失败,返回空指针NULL(0)。...转载 2019-02-04 15:57:31 · 3559 阅读 · 0 评论 -
malloc一般什么时候用
比如你在编译时不能确定数组的大小,需要动态分配再比如内存池需要管理内存,需要自行分配一片大的内存比较常用的,动态数组(数组无法事先确定大小),链表节点内存的动态分配和释放,等等。1.malloc是用来进行内存分配,事先不知道大小时2.需要重新分配(增加)内存,前面最好用malloc分配,然后用realloc3.分配较大内存时,因为栈空间有限4.从函数返回结果时,由于生命周期的原因...转载 2019-02-04 15:56:19 · 5225 阅读 · 0 评论 -
C语言中char、short、int、long各占多少字节
1byte = 8bit 一个字节占8个二进制位32位机中,char: 1个字节short: 2个字节int: 4个字节long: 4个字节64位机中,char: 1个字节short: 2个字节int: 4个字节long: 8个字节原文:https://blog.youkuaiyun.com/weixin_...转载 2019-01-15 19:36:57 · 32723 阅读 · 3 评论 -
C语言中几种类型所占字节数
最近经常会遇到C语言中各类型变量所占字节数的问题,索性在这里做一个整理总结。 其实C标准并没有具体给出规定哪个基本类型应该是多少个字节数,而且这个也与OS、编译器有关,比如同样是在32位操作系统,VC++的编译器下int类型为4个字节,而在tuborC下则是2个字节。 下面给出一个表格,方便查看个类型的字节数:类型16位32 位64位char111short int222int244unsigne...转载 2018-07-01 01:00:30 · 1353 阅读 · 0 评论 -
高并发网络编程之epoll详解
在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占尽。本文便来介绍epoll的实现机制,并附带讲解一下select和poll。通过对比其不同的实现机制,真正理解为何epoll能实现高并发。select()和p...转载 2018-05-21 12:26:41 · 159 阅读 · 0 评论