
C/C++
每日一小步
纸上得来终觉浅,绝知此事要躬行,在交流中进步!潜修内功,厚积薄发!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Union的使用
使用C语言时,常常使用struct,对于union类型却几乎没有用过,只知道它是联合类型,各字段共享一块内存,实际应用中却不知道它的具体用途。首先来说下struct和union的重要区别: struct为每个字段在不同的偏移处分配存储空间,而联合则将所有的字段重叠在内存中的相同偏移处。联合类型的用途: 1、创建别名。别名是内存对象原名之原创 2015-07-01 20:51:58 · 472 阅读 · 0 评论 -
三目运算符之“?:”间省略操作数
最近在看GPIO驱动框架中关于label属性的show方法函数时遇到了三目运算符“?:”省略操作数的情况,因为不多见在此记录下,不多说直接贴代码:static ssize_t chip_label_show(struct device *dev, struct device_attribute *attr, char *buf){ const stru原创 2017-10-15 23:14:40 · 1669 阅读 · 0 评论 -
各系统下基本数据类型所占空间
16位平台 最大2^16char 1个字节8位short 2个字节16位int 2个字节16位long 4个字节32位指针 2个字节16位32位平台 最大2^32char 1个字节8位short 2个字节16位int 4个字节32位long...原创 2019-09-03 11:35:35 · 407 阅读 · 0 评论 -
有符号与无符号转换--案例getpeername的安全漏洞
unsigned到signed的隐式强制转换常常会导致程序错误与漏洞,比较著名的一个案例就是:函数getpeername的安全漏洞。2002年, 从事FreeBSD开源操作系统项目的程序员意识到,他们对getpeername函数的实现存在安全漏洞.代码的简化版本如下://void *memcpy(void *dest, void *src, size_t n);#define KSIZE...原创 2019-09-03 17:07:12 · 589 阅读 · 0 评论