C语言
文章平均质量分 80
C语言专栏。仅为C语言相关知识,具体分类可看二级分类目录。
Real返璞归真
抛开喧嚣,只为一纸清凉。
微信公众号【Real返璞归真】有问必答。
热爱算法、安全(Pwn和逆向)、全栈开发。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法笔记(一):位运算
0x3F 0x3F3F3F3F在算法中是很有用的数值,他是满足以下两个条件的最大值: 整数的两倍不超过0x7FFFFFFF,即int能表示的最大的整数。 整数的每8位(每个字节)都是相同的。 程序中经常使用memset(a, val, sizeof(a))初始化int数组,该语句把数值a(0x00~0xFF)填充到a的每个字节上。 然而,1个int占用4个字,所以memset只能赋值出**“每8位相同”**的int。 综上所述,0x7F7F7F7F是能用memset初始化出的最大的int。不过,为了避原创 2021-05-27 15:34:38 · 376 阅读 · 0 评论 -
C语言函数调用底层实现原理
前言 C语言程序执行实质上的函数的连续调用。 运行程序时,系统通过程序入口调用main函数,在main函数中又不断调用其它函数。 程序的每个进程都包括一个调用栈结构(Call Stack)。 调用栈的作用: 传递函数参数 保存返回地址 临时保存寄存器原有值(保存现场) 寄存器分配 寄存器指CPU中可以进行高速运算的缓冲区。用于存放程序执行中用到的数据和指令。 Intel 32位结构寄存器(IA32)包含8个通用寄存器,每个寄存器4个字节(32位)。 通用寄存器按照AT&T语法,寄存器名以**%e原创 2021-05-26 10:58:51 · 2890 阅读 · 1 评论
分享