![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
Yannick_J
Yes-亚历山大的陀螺
展开
-
【基础】Volatile 本质
左下是不带volatile的代码: 右下是带volatile的代码:对应的汇编代码(32位处理器,intel格式汇编)假设i这个局部变量的偏移量为-8,i的首地址应该是ebp[-8],i++对应的汇编语言如下:左下是不带volat...原创 2019-04-12 13:47:38 · 113 阅读 · 0 评论 -
C语言中free函数是如何确定要释放多少内存空间的(malloc的秘密)
转载:C语言中free函数是如何确定要释放多少内存空间的转载原因:通俗易懂,逻辑清晰。今天看书的时候看到free函数释放动态申请的内存时只需要把内存块的首地址传过去就行了,显然仅仅依靠首地址是无法确定要释放多少内存的,猜想应该在某处存放着这个内存块的大小,网上搜了搜发现在Linux里面glibc在分配内存的时候会在内存块的地址前面的4个字节出存放内存块的大小,就猜想Windows里面...转载 2019-04-09 17:14:10 · 2205 阅读 · 1 评论 -
深入理解按位异或运算符
深入理解按位异或(^)运算符参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即: 0^0 = 0, 1^0 = 1, 0^1 = 1, 1^1 = 0按位异或的3个特点:(1) 0^0=0,0^1=1 0异或任何数=任何数(2) 1^0=1,1^1=0 1异或任何数=任何数取反(3) 任何数异或自己=把自己置0按位...转载 2019-04-15 09:33:51 · 7257 阅读 · 0 评论