- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最近忙于找工作,笔试面试了一些公司,本人主要找工作的方向是:嵌入式软件工程师。所以,针对嵌入式软件开发岗位的多次笔试与面试经历总结了一些常考查的知识点,希望有利于学弟、学妹们找工作。C语言首先,对C的考查是必须的。既然打算从事嵌入式软件开发岗位,C语言是基础,关于C主要需要把C语言三剑客即《C陷阱与缺陷》《C和指针》《C专家编程》,还有《C语言深度剖析》。其中《C和指针》、《C语言深度剖析》这两本书至少看2,3遍,从此对于C语言的基础考查,就很难难倒你了,没有捷径这几本书必须看的。1关键字考查volatile:防止编译器优化—这个关键字是为了告诉你请不要做没谱的优化,这个值可能变掉。(笔试中考查过)volatile使用的几个例子并行设备的硬件寄存器(如:状态寄存器)一个中断服务子程序中会访问到的非自动变量多线程应用中被几个任务共享的变量一个指针可以是volatile吗可以,因为指针和普通变量一样,有时也有变化程序的不可控性。常见例:子中断服务子程序修改一个指向一个buffer的指针时,必须用volatile来修饰这个指针。说明:指针是一种普通的变量,从访问上没有什么不同于其他变量的特性。其保存的数组是个整形数据,和整形变量不同的是,这个整形数据指向的是一段内存地址。const:修饰的只读变量(笔试中考查过)const:这个关键字是告诉你:请作为常量使用,而并非—放心吧,那肯定是常量const int *p; //p可变,p指向的对象不可变int const *p; //p可变,p指向的对象不可变int * const p; //p不可变,p指向的对象可变const int * const p;//指针p和p指向的对象都不可变记忆方法说明:先忽略类型名(编译器解析的时候也是忽略类型名),我们看const离哪个近,“近水楼台先得月”,离谁近就修饰谁。const int *p; //const修饰*p,p是指针,*p是指针指向的对象,不可变int const *p; //const修饰*p,p是指针,*p是指针指向的对象,不可变int * const p; //const修饰p,p不可变,p指向的对象可变const int * const p;//前一个const修饰*p,后一个const修饰p,指针p和p指向的对象//都可不变int const a = 12;const修饰的a值是不是一定无法改变呢?非也,int *p = a; *p = 5; 通过这两步,即可改变a的值,此时a值为5.typedef与define(笔试中考查过)把typedef看成是一种彻底的“封装”类型--在声明它之后不能再往里面增加别的东西。可以用其他类型说明符对宏类型名进行扩展,但对typedef所定义的类型名却不能这样做。? ? #define peach int? ? unsigned peach i;/*没问题*/? ? typedef int banana;? ? unsigned banana i;/*错误!非法*/面试题:typedef和define有什么区别:用法不同:typedef用来定义一种数据类型的别名,增强程序的可读性。define主要用来定义常量,以及书写复杂使用频率的宏。执行时间不同:typedef是编译过程的一部分,有类型检查的功能。define是宏定义,是预编译的部分,其发生在编译之前,只是简单的进行字符串的替换,不进行类型的检查。作用域不同:typedef有作用域限制。define不受作用域约束,只要是在define声明后面的引用都是正确的。对指针的操作不同:typedef和define定义的指针时有很大的区别。注意:typedef定义是语句,因此句尾要加上分号。而define不是语句,千万不能在句尾加分号。说明:#define PINT int * PINT a,b; // 定义结果是a的类型是int *, b的类型是inttypedef int * PINT; PINT a,b; //a,b都为int * 类型static:是常考查的关键字,笔试面试中考查次数相当多(笔试面试都有考查过)static修饰的局部变量存储于静态区,存储于静态区的变量有默认初始值为0,这种变量在程序执行之前创建,并在程序的整个执行期间一直存在,而不是每次在代码块开始执行时创建,在代码块执行完毕后销毁。普通变量存储于栈中,没有默认初始值。变量的链接属性和作用域不受影响,与普通局部变量一样。static修饰函数,使得函数成为静态函数。指函数的作用域仅局限于本文件(所以又称内部函数)。sizeof和strlen的区别(他们的使用也是考查的重点)sizeof 和 st
文档评论(0)