最近在看esp32的idf,有一些宏定义使用了do while(0)这种看起来好像没啥用的代码.然后我查了一下资料,发现在linux内核代码中经常用到这个东西! 现在就将这个东西整理一下. 为什么在内核中碰到很多 #define ... do{...} while(0) 有以下几点原因: 1.空语句在编译的时候会出现警告,所以有必要用#define FOO do{ } while(0) 2.给定一个基本块,可以在里面定义局部变量 3.为了能够在条件语句中使用复杂的宏定义.例如下面这段代码: #d…
union 概念 union 在中文的叫法中又被称为共用体,联合或者联合体,它定义的方式与 struct 是相同的,但是意义却与 struct 完全不同,下面是 union 的定义格式: union 共用体名 { 成员列表 }共用体变量名; 那么它与结构体的定义方式相同,那么区别是什么呢,下面通过一个 struct 与 union 的嵌套来说明两者的区别所在. struct my_struct { int type; union my_union { char *str; int number;…
一.新手常常问的一个问题:C语言和嵌入式C编程有什么区别?而嵌入式工程师一般都会告诉你,其区别在于嵌入式的C语言是跑在嵌入式的开发板上的,CPU和电脑不一样,所以编译器也是不一样的,生成的可执行程序也是不一样的.不同于一般形式的软件编程,基于特定的硬件平台嵌入式系统编程的,势必要求其编程语言具备较强的硬件直接操作能力.毫无疑问,汇编语言是具备这种特点的.然而,由于该语言编写开发过程的复杂性,通常不选择它用于嵌入式系统开发,而C语言是一种“低层次”的语言,已经成为嵌入式系统开发的最佳选择. 二.嵌…
paip.提升性能--多核编程中的java .net php c++最佳实践  v2.0 cah 作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.net/attilax //////////多核编程的方法:  1.等候jvm等直接支持多核  2.框架实现 OpenMP   3.使用并发api  (FutureTask.ExecutorService  ) 推荐  4.使用传统muilt thre…
Android编程中的5种数据存储方式 作者:牛奶.不加糖 字体:[增加 减小] 类型:转载 时间:2015-12-03我要评论 这篇文章主要介绍了Android编程中的5种数据存储方式,结合实例形式详细分析了Android实现数据存储的5中实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文介绍Android平台进行数据存储的五大方式,分别如下: 1 使用SharedPreferences存储数据2 文件存储数据      3 SQLite数据库存储数据4 使用ContentProvid…
外围功能电路控制 LET′S TRY“嵌入式编程”: 4 of 6 本连载讲解作为嵌入式系统开发技术人员所必需具备的单片机的基础知识. 在<单片机入门(1)-(3)>中,我们一起学习了单片机的硬件和编程语言以及开发环境等. 本期让我们一起来学习单片机的外围功能电路控制的基础知识吧. (SFR) Special Function Registers 控制外围功能电路的基础知识 (SFR) Special Function Registers 单片机中有象箱子功能一样的地方,我们称为寄存器,用来暂…
单片机的编程语言和开发环境 LET′S TRY“嵌入式编程”: 3 of 6 本连载讲解作为嵌入式系统开发技术人员所必需具备的基础知识.这些基础知识是硬件和软件技术人员都应该掌握的共通技术知识. 在“单片机入门(1)”和“单片机入门(2)”中,我们学习了单片机硬件方面的知识.本期我们将学习开发环境和编程语言吧. CPU懂的机器语言 人性化的C语言 能够找出程序错误的调试器 综合开发环境 CPU懂的机器语言 单片机的CPU从存储器读取程序,但是一次只能读取一条指令,然后解释每条指令,并执行.存储器…
单片机的外围功能电路 LET′S TRY“嵌入式编程”: 2 of 6 本连载讲解作为嵌入式系统开发技术人员所必需具备的基础知识.这些基础知识是硬件和软件技术人员都应该掌握的共通技术知识. 上期在<单片机入门(1)>中,我们讲解了单片机的基础知识.本期让我们来学习单片机必须具有的硬件电路(外围功能电路).这样,下期就可以将挑战一个实际单片机的运行了! “动力”―电源电路 “总指挥”―振荡电路 「闹钟」―复位电路 “动力”―电源电路 上期我们学习了单片机的基本构成和工作原理.想必大家对单片机的工…
单片机的基本构成.工作原理 LET′S TRY“嵌入式编程”: 1 of 6 本连载讲解作为嵌入式系统开发技术人员所必需具备的基础知识.这些基础知识是硬件和软件技术人员都应该掌握的共通技术知识.有了电子电路和数字电路的基础知识,就可以开始学习嵌入式系统的核心元件-单片机.从本期开始我们将为大家介绍单片机的基础知识.在单片机入门系列讲座中,首先学习单片机的基本构成和工作原理.以及外围功能电路,然后,挑战一个实际单片机的运行. 单片机 CPU 内存 “为何要使用单片机……” 单片机是控制电子产品的大…
https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || 2014年09月29日 16:52:47 hack8 阅读数:15838更多 个人分类: 编程嵌入式系统木马路由器   & 放在启动参数后面表示设置此进程为后台进程 默认情况下,进程是前台进程,这时就把Shell给占据了,我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,…