- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式系统开发人员C语言测试题编程风格问答填空题
3.2?? ?填空题 (267)?? ?根据编码规范,所有代码都应____级以上的warning编译成功。 (268)?? ?根据编码规范,所有的源文件应是可打印的______,在编辑器中定义 TAB 键自动用__8个空格代替。 (269)?? ?根据编码规范,文件名和目录的长度不要超过_255____字符。 (270)?? ?头文件应避免被重复引用,应使用_____________预处理块。 (271)?? ?用 #include filename.h 格式来引用_________________。 (272)?? ?用 #include filename.h 格式来引用__________________。 (273)?? ?根据编码规范,声明函数原型时给出参数名称和类型,并且与实现此函数时的参数名称、类型保持一致,无参数的函数,用___void___声明。 (274)?? ?根据编码规范,代码文件不要超过______行,一个函数的代码不要超过_53____行, 每行不应超过______个字符。 (275)?? ?一个程序中的空行数目最好占总代码行的_____,注释行数不应少于总代码行的____20_%_。 (276)?? ?目录、文件的命名均不要超过__255___个字符。 3.3?? ?问答与设计 (277)?? ?使用goto语句会有什么不良后果? (278)?? ?为什么要尽量避免函数带有记忆功能?
尽量避免函数带有“记忆”功能。相同的输入应当产生相同的输出。 带有“记忆”功能的函数,其行为可能是不可预测的,因为它的行为可能取决于某 种“记忆状态”。这样的函数既不易理解又不利于测试和维护。在C/C++语言中,函数的 static 局部变量是函数的“记忆”存储器。建议尽量少用static 局部变量,除非必需。(279)?? ?不设计多参数函数的目的是什么?
尽量不设计多参数函数,将不使用的参数从接口中去掉,降低接口复杂度,减少函数间接口的复杂度 (280)?? ?分别说明extern、static、auto变量的作用域范围。
extern(外部的)??这是在函数外部定义的变量的缺省存储; 方式.extern变量的作用域是整个程序;
.static(静态的)??在函数外部说明为static的变量的作用 域为从定义点到该文件尾部;在函数内部说明为static的变量的作 用域为从定义点到该局部程序块尾部.;
auto(自动的)??这是在函数内部说明的变量的缺省存储方 式.auto变量的作用域为从定义点到该局部程序块尾部(281)?? ?什么是const指针? (282)?? ?什么时候应该使用const修饰符?用const修饰常量有什么好处? (283)?? ?什么时候应该使用register修饰符?
数据存储在寄存器中的变量称为寄存器变量。寄存器变量具有与自动变量完全相同的性质,只是该种变量放在寄存器中。从寄存器中存取数据的速度比从内存中存取数据快得多,因此通常把使用频率较高的变量定义为register类别(284)?? ?什么时候应该使用volatile修饰符?
volatile修饰符告诉编译程序不要对该变量所参与的操作进行某些优化。在两种特殊的情况下需要使用volatile修饰符:第一种情况涉及到内存映射硬件(memory-mapped hardware,如图形适配器,这类设备对计算机来说就好象是内存的一部分一样),第二种情况涉及到共享内存(shared memory,即被两个以上同时运行的程序所使用的内存)。大多数计算机拥有一系列寄存器,其存取速度比计算机主存更快。好的编译程序能进行一种被称为“冗余装入和存储的删去”(redundant load and store removal)的优化,即编译程序会·在程序中寻找并删去这样两类代码:一类是可以删去的从内存装入数据的指令,因为相应的数据已经被存放在寄存器中;另一种是可以删去的将数据存入内存的指令,因为相应的数据在再次被改变之前可以一直保留在寄存器中。如果一个指针变量指向普通内存以外的位置,如指向一个外围设备的内存映射端口,那么冗余装入和存储的优化对它来说可能是有害的。(285)?? ?一个变量可以同时被说明为const和volatile吗?
可以。const修饰符的含义是变量的值不能被使用了const修饰符的那段代码修改,但这并不意味着它不能被这段代码以外的其它手段修改(286)?? ?什么时候应该使用类型强制转换(typecast)?
在两种情况下需要使用类型强制转换。第一种情况是改变运算分量的类型,从而使运算能正确地进行。下面的程序与2.12中的例子相似,但有不同之处。变量n被赋值为
您可能关注的文档
- 人教版五年级下册近义词反义词.doc
- 人教版初中语文八年级上册三峡文言文说课稿.doc
- 人教版小学六年级语文下册各单元根据课文填空练习The PEP primary sch angage f each nit f the sixth grae 2 practice fi in the banks accring t the text.doc
- 人教版小学语文一年级上册小小的船教学设计.doc
- 人教版小学语文一年级下册口语交际未来的桥教学课例.doc
- 人教版语文九年级下 祖国啊我亲爱的祖国教学设计和反思.docx
- 人教版高中语文必修4雷雨说课稿.doc
- 从中日韩历届冬奥会实力综合分析看我国冬奥运动的发展.doc
- 从死海不死实录看钱梦龙老师语文课堂教学的局限.doc
- 从日本角度反思抗日战争一课的2.doc
文档评论(0)