![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言深度解析读书笔记 陈正冲
qq418674358
热爱嵌入式开发,热爱编程,喜欢对自己的学习过程进行总结,并乐于分享
展开
-
C语言深度解剖读书笔记(3.结构体中内存对齐问题)
很多人都觉得内存对齐这个问题很难,很不好算,总算错,其实我想说只要你画一画就没那么难了。好了,进入正题。本节知识点:1.结构体为什么要内存对齐(也叫字节对齐):其实我们都知道,结构体只是一些数据的集合,它本身什么都没有。我们所谓的结构体地址,其实就是结构体第一个元素的地址。这样,如果结构体各个元素之间不存在内存对齐问题,他们都挨着排放的。对于32位机,32位编译器(这是目前常见的环境,原创 2013-08-24 00:28:07 · 7377 阅读 · 3 评论 -
在某培训机构的听课笔记
某实训机构有些小坑,听课加反省就当作对C语言的一种补充吧,哎~~~~,记录给自己看看。1.int a=9,b=10,d=9;是可以的。2.%*d ,在scanf中使用的时候,是1整数但不赋给任何变量,有个小代码:#include #include int main(){ int a=23,b=5,c=9; scanf("%*d%d%d",&a,&b,&c);原创 2013-08-24 20:59:16 · 3247 阅读 · 6 评论 -
C语言深度解剖读书笔记(3.预编译处理)
本节知识点:1.编译过程的简介: 预编译:a.处理所有的注释,以空格代替。b.将所以#define删除,并展开所有的宏定义,字符串替换。c.处理条件编译指令#if,#ifdef,#elif,#else,#endifd.处理#include,并展开被包含的文件,把头文件中的声明,全部拷贝到文件中。e.保留编译器需要使用的#pragma指令、怎么样观察这些变化呢原创 2013-08-23 18:44:47 · 3984 阅读 · 0 评论 -
C语言深度解剖读书笔记(6.函数的核心)
对于本节的函数内容其实就没什么难点了,但是对于函数这节又涉及到了顺序点的问题,我觉得可以还是忽略吧。本节知识点:1.函数中的顺序点:f(k,k++); 这样的问题大多跟编译器有关,不要去刻意追求。 这里给下顺序点的定义:顺序点是执行过程中修改变量值的最后时刻。在程序到达顺序点的时候,之前所做的一切操作都必须反应到后续的访问中。2.函数参数:函数的参数是存储在这个函数的栈上面的(对于原创 2013-08-29 20:28:31 · 2498 阅读 · 2 评论 -
C语言深度解剖读书笔记(5.内存管理的艺术)
本节知识点:1.栈的知识(我觉得栈是本节很头疼的一个问题): 对于栈的问题,首先我们通过几个不同的角度来看(因为思维有些小乱所以我们通过分总的形式进行阐述): a.sp堆栈指针,相信学过51单片机,学过arm裸机的人都知道这个堆栈指针。我们现在从51单片机的角度来看这个堆栈指针寄存器。这个堆栈指针的目的是什么?是用来保护现场(子函数的调用)和保护断点(中断的处理)的,所以在原创 2013-08-30 15:49:11 · 4081 阅读 · 1 评论 -
C语言深度解剖读书笔记(8.以后的c语言学习计划)
最近对c语言的总结学习可以告一段落了!觉得这种边学边思考边总结的方式,还不错,还是有一定的进步的!但是对于日后的c语言学习还远远没有停止。所以写了这篇文章来督促自己对c语言的学习,告诉自己还有很多不错的书没有去读。过一段时间,再回头看看。 1.对于c语言描述的数据结构的学习。 2.林锐老师的,听说他的也很不错,有时间应该读一读。 3.原创 2013-08-30 22:01:03 · 2442 阅读 · 5 评论 -
C语言深度解剖读书笔记(7.国嵌答疑问题)
本节知识点:1.可以利用这个宏 #define OFFSET(type,number) (int)(&(((type*)0)->number)) 求出结构体中成员的偏移量2.对于assert的使用是:可以这样assert(dst && src); 也可以这样assert((NULL != dst) && (NULL != src)); 上面两种方式都行!3.给一个考指针原创 2013-08-30 21:09:20 · 2240 阅读 · 0 评论 -
C语言深度解剖读书笔记(4.指针的故事)
指针这一节是本书中最难的一节,尤其是二级指针和二维数组直接的关系。本节知识点:1.指针基础,一张图说明什么是指针:2.跨过指针,直接去访问一块内存: 只要你能保证这个地址是有效的 ,就可以这样去访问一个地址的内存*((unsigned int *)(0x0022ff4c))=10; 但是前提是 0x0022ff4c是有效地址。对于不同的编译器这样的用法还不一样,一些原创 2013-08-28 20:08:46 · 3242 阅读 · 2 评论 -
C语言深度解剖读书笔记(2.字符的技巧)
本节接触了,C语言中的三大蛋疼:符号优先级 ++i顺序点 贪心法 (其实这里面好多都是跟编译器有关的,而且有好多问题都是可以通过良好的编程习惯避免的)本节知识点:1.注释问题: 注释不能把关键字弄断,如:in/*注释*/t 注释不是简单的剔除,而是使用空格替换 编译器认为双引号括起来的内容都是字符串,双斜杠也不例外。如:char *p = "heh/原创 2013-08-22 18:35:54 · 3411 阅读 · 5 评论 -
C语言深度解剖读书笔记(1.关键字的秘密)
开始本节学习笔记之前,先说几句题外话。其实对于C语言深度解剖这本书来说,看完了有一段时间了,一直没有时间来写这篇博客。正巧还刚刚看完了国嵌唐老师的C语言视频,觉得两者是异曲同工,所以就把两者一起记录下来。等更新完这七章的学习笔记,再打算粗略的看看剩下的一些C语言的书籍。本节知识:1.c语言中一共有32个关键字,分别是:auto、int、double、long、char、short、原创 2013-08-22 00:46:19 · 21792 阅读 · 39 评论