
c基础
文章平均质量分 95
浮尘丶若梦
积水成渊
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
内存的管理和分页机制
一、问题提出:我们经常会使用malloc()以及free()函数进行堆区内存申请与释放。那么你是否会这样做:int * p = malloc(0);/*malloc分配了0个字节吗,如果是那么p指向谁呢,是NULL吗*/free(p);/*假如malloc分配了0个字节,p指向了NULL,那么free(NULL)不会出现段错误吗*/12...转载 2020-07-08 17:35:56 · 440 阅读 · 0 评论 -
C语言全局未初始化数据段分析前言:在分析C语言全局未初始化变量时,发现在目标文件中全局未初始化变量
from:http://www.educity.cn/wenda/308231.html C语言全局未初始化数据段分析 前言: 在分析C语言全局未初始化变量时,发现在目标文件中全局未初始化变量并不是直接放在bss段中。 再后来发现在两个.c文件中定义同名的全局变量,链接时居然没有发生符号重定义错误。才知道C语言弱定义的概念。这在C++中是绝对不行的。 后来转载 2015-03-11 21:05:34 · 764 阅读 · 0 评论 -
GCC 提供的原子操作
GCC 提供的原子操作 gcc从4.1.2提供了__sync_*系列的built-in函数,用于提供加减和逻辑运算的原子操作。 其声明如下: 复制代码 type __sync_fetch_and_add (type *ptr, type value, …) type __sync_fetch_and_sub (type *ptr, type value, …) type __sync_fetch_...转载 2018-12-05 15:39:07 · 164 阅读 · 0 评论 -
va_start和va_end使用详解
va_start和va_end使用详解 本文主要介绍va_start和va_end的使用及原理。 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。 介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理: 1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表 void foo(....转载 2018-12-05 15:41:43 · 265 阅读 · 0 评论