embedded c
文章平均质量分 78
embeddedsoft
这个作者很懒,什么都没留下…
展开
-
union的0x3个妙用(II)
2.union巧妙地实现多字节数据类型之间的转化在涉及音视频编解码算法中,经常会涉及一些数据压缩、声音解码、图象的缩放等问题。这里通过一个例子来推荐一种union绝妙用法(这种方法由Equator公司提供,在我们公司的图象处理算法中用得很多)。在该例子中,利用union结构n64u实现占8个字节n64类型与单字节的c0~c7的相互转换,从而达到数据压缩和分解的目的。 #include原创 2006-10-25 19:56:00 · 1231 阅读 · 0 评论 -
国外嵌入式面试题
Embedded System Interview Questions: Can structures be passed to the functions by value? Why cannot arrays be passed by values to functions? Advantages and disadvantages of using ma原创 2006-10-25 22:15:00 · 4621 阅读 · 1 评论 -
关于C的0x8本“经书”[嵌入式必读]
在当今嵌入式“武林”中,流传着几本人人都想偷学几招的C语言的武功秘籍。这些秘籍都是旷世武学奇才耗尽毕生精力所著,部分秘籍流经数十载仍经久不衰,让它的无数实习者受益匪浅。 今天,承蒙武林大会所拖,在这公布这几本关于C的“经书”,让更多人实习之,练就一身绝世的嵌入式C语言好功夫。 武功秘籍排行榜:1. The C programming language 《C程序设计语言》原创 2006-10-25 20:22:00 · 1501 阅读 · 0 评论 -
union的0x3个妙用(I)
在嵌入式系统中,一般不建议使用union结构,因为union结构中的各个成员之间存在相互影响,容易滋生问题。可见,union也是把双刃剑。懂得使用它的人可以做到“削铁如泥”,而不懂得使用它的人很可能会被其所伤。下面介绍的几种方法都是嵌入式系统常用的几种技巧。如果熟练掌握,将来定有所用。 1.all的使用 使用all的数据结构模型: typedef _my_union{原创 2006-10-25 19:57:00 · 1227 阅读 · 0 评论 -
深入浅出sizeof
[int占4字节,short占2字节]1.0 回答下列问题:[答案在文章末尾]1. sizeof(char) = 2. sizeof a = 3. sizeof "a" = 4. strlen("a")) =原创 2006-10-25 19:30:00 · 1164 阅读 · 2 评论 -
高级C测试:考查C程序员的0x10个最佳问题
/*embeddedsoft:这几个题目不是很难,但很基本,能在一定地层面上考查程序员对C的掌握情况,作者基本上对每个题目都作出了详细的解答,这些题目值得思考和借鉴!*/Advanced Test in C: The 0x10 Best Questions for C ProgrammersUsing this Test In the entire test following conve翻译 2006-10-25 23:32:00 · 1951 阅读 · 0 评论 -
别踩static的地雷
只要做过项目的朋友对关键字static应该都有一些了解,但未见了解很全面的。在C语言中,关键字static有以下明显的作用:1.static变量分配到静态内存中,这一点和全局非静态变量相同。2.在函数体,static变量只要不进行修改操作,在被调用过程中其值将保持不变。3.在模块内,全局static变量可以被模块内所有函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量,具有私有特原创 2006-10-25 22:10:00 · 1178 阅读 · 0 评论 -
C语言高效编程的的四大绝招
编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。第一招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。例如:字符串的赋值。方法A:通常的办法:#define LEN 32char string1 [LEN];memse转载 2006-10-25 20:27:00 · 982 阅读 · 0 评论 -
一道微软亚洲工程院C语言笔试题的解答
题目:struct S{ int i; int * p;};void main(){ struct S s; int * p = &s.i; p[0] = 4; p[1] = 3; s.p = p; s.p[1] = 1; s.p[0] = 2;}问程序会在哪一行死掉。分析:这道题有点难度。如果你对指针掌握的不错的话,仔细分析,相信最终还是可以迎刃而解的。下面原创 2006-10-25 20:08:00 · 1849 阅读 · 1 评论 -
嵌入式软件测试的十大秘诀
在嵌入式软件开发过程中,一般来说,花在测试和花在编码的时间比为3:1(实际上可能更多)。这个比例随着你的编程和测试水平的提高而不断下降,但不论怎样,软件测试对一般人来讲很重要。很多年前,一位开发人员为了对嵌入式有更深层次的理解,向Oracle询问了这样的一个问题:我怎么才能知道并懂得我的系统到底在干些什么呢? Oracle面对这个问题有些吃惊,因为在当时没有人这么问过,而同时代的嵌入式开发人员原创 2006-10-25 22:35:00 · 1456 阅读 · 3 评论 -
你今天volatile了吗?--慎重使用
根据c/c++语法,const可以出现的地方,volatile几乎也都可以出现。但是,const修饰的对象其值不能改变,而volatile修饰的对象其值可以随意地改变,也就是说,volatile对象值可能会改变,即使没有任何代码去改变它。在这一点上,最典型的例子就是内存映射的设备寄存器和多线程中的共享对象。懂得使用volatile也是一门小小的艺术。使用volatile约束符可以阻止编译器对代原创 2006-10-25 22:32:00 · 1945 阅读 · 0 评论 -
offsetof,搞嵌入式必须会的杀手锏
在嵌入式应用中,或许你对offsetof接触不多甚至根本没见过。如果是这样,那么从这一刻起就好好地掌握它,让它成为你的又一杀手锏吧。1. offsetof与EEPROM 我们许多人可能都使用过一些非挥发性的存储器,如常见的EEPROM。我们经常使用它们在存储一些系统的配置参数和设备信息。在所有的EEPROM中,通过串口访问的占了大多数。一般来说,对串口的访问都是按字节进行的,这使得我们不可避原创 2006-10-25 20:17:00 · 1872 阅读 · 0 评论 -
想成为嵌入式程序员应知道的0x10个基本问题
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个转载 2006-10-25 19:26:00 · 789 阅读 · 0 评论 -
你今天volatile了吗?--准确定位
在前一篇关于volatile文章《你今天volatile了吗?--慎重使用》(在后面,简称《慎重使用》)中提到,volatile定义的对象其内容可能会忽然的变化。换句话讲,如果你定义了一个volatile对象,就等于你告诉编译器该对象的内容可能会改变,即使代码中没有任何语句去改变该对象。编译器访问非volatile对象和volatile对象的方式很不一样。对于前者(经优化后),它先将非vola原创 2006-10-25 22:30:00 · 1847 阅读 · 0 评论 -
你今天volatile了吗?--兑现允诺
上一篇文章《你今天volatile了吗?--准确定位》(后面简称《准确定位》)主要探讨关于volatile在定义设备寄存器时应该放到什么位置最合适的问题。另外,在文章中也提到下面两个观点:*对任意数据类型T,C提供一种标准内置的转换。这个转化可以完成从T指针到volatile T指针的转换,并规定其逆过程即volatile T指针向T指针转换为非法。*const指针和volatile指针在转换原创 2006-10-25 22:29:00 · 1737 阅读 · 0 评论 -
软件外企C++面试题,大家试试看
好好地考察一下你的Embedded English & C language理解力吧. 1.What is achieved by prefixing the static keyword to a file-level function or file-level variable declaration? 2.Describe the difference betw转载 2006-10-25 20:13:00 · 1478 阅读 · 0 评论 -
优化C代码常用的几招
在性能优化方面永远注意80-20原则,即20%的程序消耗了80%的运行时间,因而我们要改进效率,最主要是考虑改进那20%的代码。不要优化程序中开销不大的那80%,这是劳而无功的。第一招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值:方法A:通常的办法#define LEN转载 2006-10-25 22:42:00 · 1114 阅读 · 0 评论