1 嵌入式学习的一些概念理解误区 很多嵌入式初学者认为,学嵌入式,就是学习ARM,就是学习开发板.买一块开发板,然后在上面“移植”u-boot.Linux内核,再使用busybox制作一个根文件系统,大功告成!觉得可以出去找工作了.这其实是有一定片面性的:首先ARM是个CPU架构,跟PC上的X86架构一样,你见过有人在Windows下面学习C/C++编程.MFC编程.网络编程.互联网编程,说自己学习X86的吗?当然,也不可否认,嵌入式平台的多样性.硬件的可定制性导致我们在嵌入式平台上开发应用程序…
有幸读了yuguo<web全栈工程师的自我修养>,颇有收获,故在此对读到的内容加以整理,方便指导,同时再回顾一遍书中的内容. 概览 整本书叙述的是作者的成长经历,通过经验的分享,给新人或者想成为web全栈工程师的从业人员的指导.本人最大的感触,就是整本书讲述细节的地方特别多,比如HTTP协议,性能优化等,都是直接可以借鉴使用的. 按照自己学习的理解,本人认为全书主要有两个方面的内容: 路线指导 软价值指导 路线指导主要是从技术方面的整体指导,如成为全栈工程师的三个原则,不同等级的前端工程师所需…
最近在看<web全栈工程师的自我修养>一书,作者是来自腾讯的前端工程师.作者在做招聘前端的时候问应聘者web新能优化有什么了解和经验,应聘者思索后回答“在发布项目之前压缩css和 Javascript源代码.这样文件体积就变小了,用户加载必要资源所花费的时间就更短了”.作者追问还有吗,应聘者答不上来了. 作者在书中附上的更多的web性能优化经验.其中我详细补充了很多 压缩源码和图片 JavaScript 文件源代码可以采用混淆压缩()的方式,css文件源代码进行普通压缩,jpg图片可以根据质量…
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/5243181.html [正文] 豆瓣链接:https://book.douban.com/subject/26598045/ [目录] 01 什么是全栈工程师 02 如何成为全栈工程师 03 从学生到工程师 04 野生程序员的故事 05 工程师事业指南 06 全栈工程师眼中的HTTP 07 高性能…
13.1 总结 前面12节的课程,主要针对 Linux 内核中 GNU C 扩展的一些常用 C 语言语法进行了分析.GNU C 的这些扩展语法,主要用来完善 C 语言标准和编译优化.而通过 C 标准的发展过程我们又发现,对于一些编译器扩展的一些特性,或者其它编程语言(如:C++)中的好的特性和语法,C 标准也会适时地吸收进来,作为新的 C 语言标准. 在 GNU C 的这些扩展语法中,__attribute__ 和宏定义是两大特色.在嵌入式底层系统中,尤其是 Linux 内核和 U-boot 中…
6.1 GNU C 的扩展关键字:attribute GNU C 增加一个 __atttribute__ 关键字用来声明一个函数.变量或类型的特殊属性.声明这个特殊属性有什么用呢?主要用途就是指导编译器在编译程序时进行特定方面的优化或代码检查.比如,我们可以通过使用属性声明指定某个变量的数据边界对齐方式. __atttribute__ 的使用非常简单,当我们定义一个函数.变量或类型时,直接在它们名字旁边添加下面的属性声明即可: __atttribute__((ATTRIBUTE)) 这里需要注意…
4.1 typeof 关键字 ANSI C 定义了 sizeof 关键字,用来获取一个变量或数据类型在内存中所占的存储字节数.GNU C 扩展了一个关键字 typeof,用来获取一个变量或表达式的类型.这里使用关键字可能不太合适,因为毕竟 typeof 还没有被写入 C 标准,是 GCC 扩展的一个关键字.为了方便,我们就姑且称之为关键字吧. 通过使用 typeof,我们可以获取一个变量或表达式的类型.所以 typeof 的参数有两种形式:表达式或类型. int i ; ; ​ typeof(i…
在买之前以为这本书是教你怎么去做一个web全栈工程师,以及介绍需要掌握的哪些技术的书,然而看的过程中才发现,是一本方法论的书.读起来的感觉有点像红衣教主的<我的互联网方法论>,以一些自己的经历和感悟来阐述web全栈工程师需要具备哪些素质,而不仅仅是需要哪些技术.这算是我买的书中看的最快的一本书.                  在阅读这本书之前,我对全栈工程师的理解还停留在node阶段,随着node在服务端的风生水起,有一段时间会认为使用nodejs作为服务端开发,前后端统一使用js开发,便…
3.1 基础复习:表达式.语句和代码块 表达式 表达式和语句是 C 语言中的基础概念.什么是表达式呢?表达式就是由一系列操作符和操作数构成的式子.操作符可以是 C 语言标准规定的各种算术运算符.逻辑运算符.赋值运算符.比较运算符等.操作数可以是一个常量,也可以是一个变量.表达式也可以没有操作符,单独的一个常量甚至是一个字符串,也是一个表达式.下面的字符序列都是表达式: + i = + i = i++ + "wit" 表达式一般用来数据计算或实现某种功能的算法.表达式有2个基本属性:值和…
5.1 什么是零长度数组 顾名思义,零长度数组就是长度为0的数组. ANSI C 标准规定:定义一个数组时,数组的长度必须是一个常数,即数组的长度在编译的时候是确定的.在ANSI C 中定义一个数组的方法如下: ]; C99 新标准规定:可以定义一个变长数组. int len; int a[len]; 也就是说,数组的长度在编译时是未确定的,在程序运行的时候才确定,甚至可以由用户指定大小.比如,我们可以定义一个数组,然后在程序运行时才指定这个数组的大小,还可以通过输入数据来初始化数组,示例代码如…