C语言
文章平均质量分 85
V明亮
这个作者很懒,什么都没留下…
展开
-
C语言深度解剖读书笔记(1.关键字的秘密)
转自:http://blog.csdn.net/mbh_1991/article/details/10149805 开始本节学习笔记之前,先说几句题外话。其实对于C语言深度解剖这本书来说,看完了有一段时间了,一直没有时间来写这篇博客。正巧还刚刚看完了国嵌唐老师的C语言视频,觉得两者是异曲同工,所以就把两者一起记录下来。等更新完这七章的学习笔记,再打算粗略的看看剩下的一些C语言的书籍。转载 2013-09-02 10:40:55 · 478 阅读 · 0 评论 -
C语言深度解剖读书笔记(3.结构体中内存对齐问题)
很多人都觉得内存对齐这个问题很难,很不好算,总算错,其实我想说只要你画一画就没那么难了。好了,进入正题。 本节知识点: 1.结构体为什么要内存对齐(也叫字节对齐): 其实我们都知道,结构体只是一些数据的集合,它本身什么都没有。我们所谓的结构体地址,其实就是结构体第一个元素的地址。这样,如果结构体各个元素之间不存在内存对齐问题,他们都挨着排放的。对于32位机,32位编译器(这是目前常见的环境,转载 2013-09-03 11:31:22 · 718 阅读 · 0 评论 -
C语言深度解剖读书笔记(3.预编译处理)
本节知识点: 1.编译过程的简介: 预编译: a.处理所有的注释,以空格代替。 b.将所以#define删除,并展开所有的宏定义,字符串替换。 c.处理条件编译指令#if,#ifdef,#elif,#else,#endif d.处理#include,并展开被包含的文件,把头文件中的声明,全部拷贝到文件中。 e.保留编译器需要使用的#pragma指令、 怎么样观察这些变化呢转载 2013-09-03 11:30:34 · 533 阅读 · 0 评论 -
C语言中的内存布局
本节注重分清几个概念:.text .data .bss 堆 栈 静态存储区 只读存储区等 从程序到a.out 把程序变成.text .data .bss 是编译原理完成的过程 从a.out把程序映射到对应的内存地址空间是操作系统完成的,也就是在操作系统创建进程的时候完成的,在描述进程的那个结构体中。 我们常说的堆是为了申请动态内存的时候使用的,malloc。转载 2013-09-03 10:39:21 · 503 阅读 · 0 评论 -
C语言深度解剖读书笔记(7.国嵌答疑问题)
本节知识点: 1.可以利用这个宏 #define OFFSET(type,number) (int)(&(((type*)0)->number)) 求出结构体中成员的偏移量 2.对于assert的使用是: 可以这样 [cpp] view plaincopyprint? assert(dst && src); assert(dst && src);转载 2013-09-03 14:13:14 · 715 阅读 · 0 评论 -
C语言深度解剖读书笔记(6.函数的核心)
对于本节的函数内容其实就没什么难点了,但是对于函数这节又涉及到了顺序点的问题,我觉得可以还是忽略吧。 本节知识点: 1.函数中的顺序点:f(k,k++); 这样的问题大多跟编译器有关,不要去刻意追求。 这里给下顺序点的定义:顺序点是执行过程中修改变量值的最后时刻。在程序到达顺序点的时候,之前所做的一切操作都必须反应到后续的访问中。 2.函数参数:函数的参数是存储在这个函数的栈上面的(对于转载 2013-09-03 14:10:46 · 527 阅读 · 0 评论 -
在某培训机构的听课笔记
某实训机构有些小坑,听课加反省就当作对C语言的一种补充吧,哎~~~~,记录给自己看看。 1.int a=9,b=10,d=9;是可以的。 2.%*d ,在scanf中使用的时候,是1整数但不赋给任何变量,有个小代码: [cpp] view plaincopyprint? #include #include int main() { int a=2转载 2013-09-03 11:46:45 · 551 阅读 · 0 评论 -
C语言深度解剖读书笔记(5.内存管理的艺术)
本节知识点: 1.栈的知识(我觉得栈是本节很头疼的一个问题): 对于栈的问题,首先我们通过几个不同的角度来看(因为思维有些小乱所以我们通过分总的形式进行阐述): a.sp堆栈指针,相信学过51单片机,学过arm裸机的人都知道这个堆栈指针。我们现在从51单片机的角度来看这个堆栈指针寄存器。这个堆栈指针的目的是什么?是用来保护现场(子函数的调用)和保护断点(中断的处理)的,所以在转载 2013-09-03 11:54:46 · 833 阅读 · 0 评论 -
C语言深度解剖读书笔记(2.字符的技巧)
本节接触了,C语言中的三大蛋疼:符号优先级 ++i顺序点 贪心法 (其实这里面好多都是跟编译器有关的,而且有好多问题都是可以通过良好的编程习惯避免的) 本节知识点: 1.注释问题: 注释不能把关键字弄断,如:in/*注释*/t 注释不是简单的剔除,而是使用空格替换 编译器认为双引号括起来的内容都是字符串,双斜杠也不例外。如:char *p = "heh/转载 2013-09-03 11:29:34 · 577 阅读 · 0 评论 -
C语言深度解剖读书笔记(4.指针的故事)
指针这一节是本书中最难的一节,尤其是二级指针和二维数组直接的关系。 本节知识点: 1.指针基础,一张图说明什么是指针: 2.跨过指针,直接去访问一块内存: 只要你能保证这个地址是有效的 ,就可以这样去访问一个地址的内存*((unsigned int *)(0x0022ff4c))=10; 但是前提是 0x0022ff4c是有效地址。对于不同的编译器这样的用法还不一样,一些转载 2013-09-03 11:53:36 · 710 阅读 · 0 评论