⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 成为嵌入式程序员应知道的0x10个问题-开发者网络-嵌入式-天极yesky.htm

📁 j2me的一些东西。有用的东东
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0038)http://dev.yesky.com/257/2474257.shtml -->
<HTML lang=zh-CN xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>成为嵌入式程序员应知道的0x10个问题-开发者网络-嵌入式-天极Yesky</TITLE>
<META content=成为嵌入式程序员应知道的0x10个问题, name=description>
<META content=成为嵌入式程序员应知道的0x10个问题, name=keywords>
<META content="天极Yesky | 全球中文IT第一门户" name=author>
<META content="天极Yesky | 全球中文IT第一门户" name=Copyright>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META http-equiv=Content-Language content=zh-CN><LINK media=all 
href="成为嵌入式程序员应知道的0x10个问题-开发者网络-嵌入式-天极Yesky.files/y_mobile_content.css" 
type=text/css rel=stylesheet>
<SCRIPT src="成为嵌入式程序员应知道的0x10个问题-开发者网络-嵌入式-天极Yesky.files/showlay.js"></SCRIPT>

<META content="MSHTML 6.00.2900.3132" name=GENERATOR></HEAD>
<BODY><!--页面头部--><!--头部-->
<DIV id=topmenu><A href="http://www.yesky.com/">Yesky首页</A>| <A 
href="http://product.yesky.com/">产品报价</A>| <A 
href="http://cseek.yesky.com/">行情</A>| <A href="http://mobile.yesky.com/">手机</A> 
| <A href="http://digital.yesky.com/">数码</A> | <A 
href="http://notebook.yesky.com/">笔记本</A> | <A 
href="http://pc.yesky.com/">台式机</A> | <A href="http://diy.yesky.com/">DIY硬件</A> 
| <A href="http://oa.yesky.com/">外设</A> | <A href="http://net.yesky.com/">网络</A> 
| <A href="http://dh.yesky.com/">数字家庭</A> | <A 
href="http://lab.yesky.com/">评测</A> | <A href="http://soft.yesky.com/">软件</A> | 
<A href="http://e.yesky.com/">e时代</A> | <A href="http://game.yesky.com/">游戏</A> 
| <A href="http://pic.yesky.com/">图片</A> | <A 
href="http://desktop.yesky.com/">壁纸</A> | <A href="http://q.yesky.com/">群乐</A> | 
<A href="http://my.yesky.com/">社区</A> | <A href="http://blog.yesky.com/">博客</A> 
| <A href="http://www.mydown.com/">下载</A></DIV>
<DIV id=topbox>
<DIV class=tleft><A href="http://www.yesky.com/"><IMG alt=天极Yesky_全球中文IT第一门户 
src="成为嵌入式程序员应知道的0x10个问题-开发者网络-嵌入式-天极Yesky.files/logo.gif" border=0></A></DIV>
<DIV class=tad><SPAN id=ad1></SPAN></DIV>
<DIV id=search>
<DIV>
<FORM name=searchform action=http://search.chinabyte.com/search method=get 
target=_blank><INPUT id=searchzz onmouseover=this.focus() onfocus=this.select() 
name=q><INPUT type=hidden value=GB2312 name=encoding><INPUT type=hidden 
value=connect name=dir><INPUT type=hidden value=20002 name=cid><INPUT id=search_btn type=submit value=天极搜索> </FORM></DIV>
<DIV class=tdq>
<DIV class=rightarea><A href="http://bj.yesky.com/">北京</A> <A 
href="http://hd.yesky.com/">上海</A> <A href="http://gd.yesky.com/">广东</A> <A 
href="http://xa.yesky.com/">西安</A><BR><A href="http://cq.yesky.com/">重庆</A> <A 
href="http://cd.yesky.com/">成都</A> <A href="http://sy.yesky.com/">沈阳</A> <A 
href="http://js.yesky.com/">江苏</A> </DIV>
<DIV class=rightarea_right><A 
href="http://my.yesky.com/">用户<BR>登录</A></DIV></DIV></DIV>
<DIV class=tright>
<DIV class=box1>
<SCRIPT src="成为嵌入式程序员应知道的0x10个问题-开发者网络-嵌入式-天极Yesky.files/content_text_ad.js" 
type=text/javascript></SCRIPT>
</DIV></DIV></DIV>
<SCRIPT src="成为嵌入式程序员应知道的0x10个问题-开发者网络-嵌入式-天极Yesky.files/flash.js" 
type=text/javascript></SCRIPT>

<DIV id=childmenu><A href="http://soft.yesky.com/">软件频道&gt;</A><A 
href="http://dev.yesky.com/">程序开发&gt;</A><A 
href="http://dev.yesky.com/devjava/">Java</A><A 
href="http://dev.yesky.com/ysdevvb">VB</A><A 
href="http://dev.yesky.com/ysdevvc">VC</A><A 
href="http://dev.yesky.com/ysdevdelphi">Delphi</A><A 
href="http://dev.yesky.com/ysdevc">C/C++</A><A 
href="http://dev.yesky.com/web/">Web开发</A><A 
href="http://dev.yesky.com/msdn/">微软专栏</A><A 
href="http://dev.yesky.com/devydkf/">移动</A><A 
href="http://dev.yesky.com/devsjk/">数据库</A><A 
href="http://dev.yesky.com/ysdevcxrs">程序人生</A><A 
href="http://dev.yesky.com/ysdevrjgc">软件工程</A>|<A 
href="http://soft.yesky.com/lesson/">产品中心</A><A 
href="http://www.mydown.com/soft/develop/news.shtml">下载</A><A 
href="http://q.yesky.com/group/179"><FONT 
color=#ff0000>群乐:大家耍QQ</FONT></A></DIV><!--导航条-->
<DIV id=location>
<DIV class=loleft>您现在的位置: <A href="http://www.yesky.com/">天极Yesky</A> &gt; <A 
href="http://soft.yesky.com/">软件频道</A> &gt; <A 
href="http://dev.yesky.com/">开发者网络</A> &gt; 成为嵌入式程序员应知道的0x10个问题</DIV>
<DIV class=adright><SPAN id=ad2></SPAN></DIV></DIV><!--内容块开始-->
<DIV id=conbox><!--左边开始-->
<DIV id=conleft>
<DIV id=contopla1>
<DIV id=__001>
<DIV class=qkong></DIV>
<DIV class=qw1>全文</DIV>
<DIV class=zkong>
<DIV class=kl></DIV>
<DIV class=bj><A href="http://dev.yesky.com/257/2474257.shtml#pls" 
target=_self>评论</A></DIV>
<DIV class=kr></DIV>
<SCRIPT type=text/javascript>
var titiepic ="#";
if (titiepic!="#")
{
document.write("<div class=\"kl\"></div><div class=\"bj\"><a href=\"#\" target=\"_blank\">图片</a></div><div class=\"kr\"></div>");
}
</SCRIPT>
</DIV></DIV></DIV>
<DIV class=topadbg><SPAN id=ad10></SPAN></DIV><A name=top></A>
<DIV id=contitle>
<H1>成为嵌入式程序员应知道的0x10个问题</H1></DIV>
<DIV id=conauthor><SPAN>2006-07-06 08:00 </SPAN><SPAN>作者: youxin2004 
</SPAN><SPAN>出处: 天极博客 </SPAN><SPAN>责任编辑:<A title=向本编辑提问 
href="http://comments.yesky.com/t/·&frac12;&Ouml;&Ucirc;/6,324/2474257.shtml" target=_blank>方舟</A> 
</SPAN></DIV>
<DIV class=topadbg><SPAN id=ad9></SPAN></DIV>
<DIV id=conneirong><SPAN id=ad3></SPAN>
<DIV class=guanggao><SPAN id=contentAdv></SPAN></DIV>  <A 
href="http://soft.yesky.com/lesson/188/2023188.shtml" target=_blank><FONT 
color=#3809f7>C语言</FONT></A>测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。<BR><BR>  从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字符的ASCII值。这些问题着重考察你的系统调用和内存分配策略方面的能力吗?这标志着出题者也许花时间在微机上而不是在<A 
href="http://soft.yesky.com/lesson/188/2023188.shtml" target=_blank><FONT 
color=#1a1ae6>嵌入式</FONT></A>系统上。如果上述任何问题的答案是"是"的话,那么我知道我得认真考虑我是否应该去做这份工作。<BR><BR>  从面试者的角度来讲,一个测试也许能从多方面揭示应试者的素质:最基本的,你能了解应试者C语言的水平。不管怎么样,看一下这人如何回答他不会的问题也是满有趣。应试者是以好的直觉做出明智的选择,还是只是瞎蒙呢?当应试者在某个问题上卡住时是找借口呢,还是表现出对问题的真正的好奇心,把这看成学习的机会呢?我发现这些信息与他们的测试成绩一样有用。<BR><BR>  有了这些想法,我决定出一些真正针对<A 
href="http://soft.yesky.com/lesson/188/2023188.shtml" target=_blank><FONT 
color=#2222dd>嵌入式</FONT></A>系统的考题,希望这些令人头痛的考题能给正在找工作的人一点帮助。这些问题都是我这些年实际碰到的。其中有些题很难,但它们应该都能给你一点启迪。 
<BR><BR>  这个测试适于不同水平的应试者,大多数初级水平的应试者的成绩会很差,经验丰富的程序员应该有很好的成绩。为了让你能自己决定某些问题的偏好,每个问题没有分配分数,如果选择这些考题为你所用,请自行按你的意思分配分数。 
<BR><BR>  <B>预<A class=bluekey href="http://com.chinabyte.com/" 
target=_blank>处理器</A>(Preprocessor)</B><BR><BR>  1 . 用预处理指令#define 
声明一个常数,用以表明1年中有多少秒(忽略闰年问题)<BR><BR>
<TABLE borderColor=#cccccc width="90%" align=center bgColor=#e1e1e1 border=1>
  <TBODY>
  <TR>
    <TD>#define SECONDS_PER_YEAR (60 * 60 * 24 * 
365)UL</TD></TR></TBODY></TABLE><BR>  我在这想看到几件事情:<BR><BR>  1) #define 
语法的基本知识(例如:不能以分号结束,括号的使用,等等)<BR><BR>  2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。<BR><BR>  3) 
意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。<BR><BR>  4) 
如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。<BR><BR>  2 . 写一个"标准"宏MIN 
,这个宏输入两个参数并返回较小的一个。<BR><BR>
<TABLE borderColor=#cccccc width="90%" align=center bgColor=#e1e1e1 border=1>
  <TBODY>
  <TR>
    <TD>#define MIN(A,B) ((A) &lt;= (B) ? (A) : (B)) 
</TD></TR></TBODY></TABLE><BR>  这个测试是为下面的目的而设的: <BR><BR>  1) 
标识#define在宏中应用的基本知识。这是很重要的。因为在 嵌入(inline)操作符 
变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。<BR><BR>  2) 
三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。<BR><BR>  3) 
懂得在宏中小心地把参数用括号括起来<BR><BR>  4) 我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事?<BR><BR>
<TABLE borderColor=#cccccc width="90%" align=center bgColor=#e1e1e1 border=1>
  <TBODY>
  <TR>
    <TD>least = MIN(*p++, b);</TD></TR></TBODY></TABLE><BR>  3. 
预处理器标识#error的目的是什么?<BR><BR>  如果你不知道答案,请看参考文献1。这问题对区分一个正常的伙计和一个书呆子是很有用的。只有书呆子才会读C语言课本的附录去找出象这种问题的答案。当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。<BR><BR>  <B>死循环(Infinite 
loops)</B><BR><BR>  4. 
嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?<BR><BR>  这个问题用几个解决方案。我首选的方案是:<BR><BR>
<TABLE borderColor=#cccccc width="90%" align=center bgColor=#e1e1e1 border=1>
  <TBODY>
  <TR>
    <TD>while(1){}</TD></TR></TBODY></TABLE><BR>  一些程序员更喜欢如下方案:<BR><BR>
<TABLE borderColor=#cccccc width="90%" align=center bgColor=#e1e1e1 border=1>
  <TBODY>
  <TR>
    <TD>for(;;)<BR>{}</TD></TR></TBODY></TABLE><BR>  这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这个作为方案,我将用这个作为一个机会去探究他们这样做的基本原理。如果他们的基本答案是:"我被教着这样做,但从没有想到过为什么。"这会给我留下一个坏印象。<BR><BR>  第三个方案是用 
goto<BR><BR>
<TABLE borderColor=#cccccc width="90%" align=center bgColor=#e1e1e1 border=1>
  <TBODY>
  <TR>
    <TD>Loop:<BR>...<BR>goto 
Loop;</TD></TR></TBODY></TABLE><BR>  应试者如给出上面的方案,这说明或者他是一个汇编语言程序员(这也许是好事)或者他是一个想进入新领域的BASIC/FORTRAN程序员。<BR><BR>
<DIV class=right>共3页。 <A class=page 
href="http://dev.yesky.com/257/2474257.shtml" target=_self><FONT 
color=#666666><B>1</B></FONT></A> <A class=page 
href="http://dev.yesky.com/257/2474257_1.shtml" target=_self><B>2</B></A> <A 
class=page href="http://dev.yesky.com/257/2474257_2.shtml" 
target=_self><B>3</B></A> <A class=page 
href="http://dev.yesky.com/257/2474257_1.shtml" target=_self><FONT 
face=Webdings>8</FONT></A> <A class=page 
href="http://dev.yesky.com/257/2474257_2.shtml" target=_self><FONT 
face=Webdings>:</FONT></A></DIV></DIV><!--广告代码开始-->
<SCRIPT>
var ad_cid;
if (window.location.search.substring(1) != "")
{
ad_cid = window.location.search.substring(1);
} else {
ad_cid = 412;
}
</SCRIPT>
<!--小通栏:c-scolumn顶部500*90--><SPAN id=span_ad1>
<SCRIPT language=JavaScript>
document.write("<script src=\"http://vd.yesky.com/html/"+ad_cid+"/"+ad_cid+"_c-scolumn.js\"><\/script>");</SCRIPT>
</SPAN>
<SCRIPT language=JavaScript>
document.getElementById("ad1").innerHTML=document.getElementById("span_ad1").innerHTML;
document.getElementById("span_ad1").innerHTML="";
</SCRIPT>
<!--c-pip文章正文中间240*200--><SPAN id=span_ad3>
<SCRIPT language=JavaScript>
document.write("<script src=\"http://vd.yesky.com/html/"+ad_cid+"/"+ad_cid+"_c-pip.js\"><\/script>");</SCRIPT>
</SPAN>
<SCRIPT>
if(document.getElementById("contentAdv")) {
document.getElementById("contentAdv").innerHTML=document.getElementById("span_ad3").innerHTML;
document.getElementById("span_ad3").innerHTML="";

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -