写在前面:  按照main()函数的代码一行一行的分析,该是看到了 etimer_process 这个位置.但是etimer_process实现里的一个宏 PROCESS_YIELD()引出了很多故事,于是单独把整个宏的东西整理成笔记,贴出来,和学习contiki的伙伴分享. 在说这个宏之前,得先记下c 语言的switch()遭遇. switch()从表面上来看,或许应该是非常简单的问题--C语言的基本功吧.它的使用方式,按照常规来说,如下图所示: 好吧,那就贴一段常规的代码: int main…
switch (表达式的值) { case 1: 语句1 break; case 2: 语句2 break; case 3: 语句3 break; case 4: 语句4 break; ...... default: 默认语句 break; 1.适用于离散值的开关判断,可以转换成一段连续的范围 2.注意case穿透,break的使用. 3.可以把各个case值定义为enum枚举或者使用宏定义定义别名 1.使用switch语句完成:输入一个简单的两个数字加减乘除运算的式子,使用switch通过转换…
好吧,昨晚上研究了switch()的底层实现原理--发现它并不是一般C语言教科书上那样所言,当然,这对于本身就非常熟悉汇编的同学来说,是小菜一碟.世界上,很多事情是巧合与必然的结合体,没有无缘无故的爱,也没有无缘无故的恨---我为啥会被一个switch给挡出去路?这个switch在contiki中又有何重要作用?且不回答这个问题,先来看看如何使用昨天晚上展开的PROCESS_YIELD()宏. 说明:这里就只是贴打印信息,分析打印信息了,不再贴分析过程中的代码了. 一,修改自己的hello-wo…
04 | 程序实体的那些事儿(上) 还记得吗?Go 语言中的程序实体包括变量.常量.函数.结构体和接口. Go 语言是静态类型的编程语言,所以我们在声明变量或常量的时候,都需要指定它们的类型,或者给予足够的信息,这样才可以让 Go 语言能够推导出它们的类型. 问题:声明变量有几种方式? package main import ( "flag" "fmt" ) func main() { var name string // [1] flag.StringVar(&a…
06 | 程序实体的那些事儿 (下) 在上一篇文章,我们一直都在围绕着可重名变量,也就是不同代码块中的重名变量,进行了讨论.还记得吗? 最后我强调,如果可重名变量的类型不同,那么就需要引起我们的特别关注了,它们之间可能会存在"屏蔽"的现象. 必要时,我们需要严格地检查它们的类型,但是怎样检查呢?咱们现在就说. 我今天的问题是:怎样判断一个变量的类型? 我们依然以在上一篇文章中展示过的 demo11.go 为基础. package main import "fmt"…
19 | 错误处理(上) 提到 Go 语言中的错误处理,我们其实已经在前面接触过几次了. 比如,我们声明过error类型的变量err,也调用过errors包中的New函数. 我们说过error类型其实是一个接口类型,也是一个 Go 语言的内建类型.在这个接口类型的声明中只包含了一个方法Error.Error方法不接受任何参数,但是会返回一个string类型的结果.它的作用是返回错误信息的字符串表示形式. 我们使用error类型的方式通常是,在函数声明的结果列表的最后,声明一个该类型的结果,同时在…
第一轮学习 golang "基础与进阶"学习笔记,Go指南练习题目解析.使用学习资料 <Go-zh/tour tour>.记录我认为会比较容易忘记的知识点,进行补充,整理总结,以及自己的心得体会.包.变量.函数.流程控制.数组.结构体.切片.映射.面向对象.接口,基础知识与进阶知识.…
1.delete是一元操作符,用来删除对象属性或者元素. var a={ x:1, y:2 } delete a.x; //删除x属性 “x”in a //false:a对象中已经不存在x属性 alert(a.x) //undefined;这里还是存在“东西”的 就如: var b=[1,2,3]; delete b[0]; b.length //3:还是3,虽然上面已经删除了b[0]   2.void运算符 void忽略操作的值,因此在操作数具有辅助作用的时候使用void来让程序更具语义 例子…
我对于学习的C语言的结构体做一个小的学习总结,总结如下: 结构体:structure 结构体是一种用户自己建立的数据类型,由不同类型数据组成的组合型的数据结构.在其他高级语言中称为记录(record). 声明一个结构体类型的一般形式为: struct 结构体名{ 类型名 成员名1; 类型名 成员名2; ……}; 注意: 结构体类型的名字是由一个关键字struct 和结构体名组合而成的如struct Student. 结构体名是由用户指定的,又称“结构体标记”以区别于其他结构体类型. 花括号内是该…
一. Java的历史与由来 原名Oak,针对嵌入式系统开发设计,语法与C/C++基本一致 二. Java语言特点 Java由四方面组成:Java编程语言.Java类文件格式.Java虚拟机和Java应用程序接口(Java API). 主要两点: 1. Java继承C++语言面向对象的核心,是纯粹的面向对象语言. 2. Java舍弃了指针.运算符重载等,增加垃圾回收机制,实现内存的自动分配管理 与C.C++主要的差别 1. 内存自动分配回收,C/C++中存在内存管理函数或者操作符malloc(),…