- 1
- 0
- 约5.3千字
- 约 4页
- 2017-03-25 发布于四川
- 举报
嵌入式面试见常题型
预处理器( Preprocessor)
1 . 用预处理指令 #define 声明一个常数,用以表明 1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: .; #define 语法的基本知识(例如:不能以分号结束,括
号的使用,等等) .; 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 .; 意识到这个表达式将使一个 16位机的整型数溢出 -因此要用到长整型符号 L,告诉编译器这个常数是的长整型数。 .; 如果你在你的表达式中用到 UL(表示无符号长整型),那么你有了一个好的起点。
2 . 写一个 标准宏 MIN ,这个宏输入两个参数并返回较小的一个。
#define MIN(A,B)((A) = (B) ? (A) : (B))
这个测试是为下面的目的而设的: .; 标识#define在宏中应用的基本知识。这是很重要的,因为直到嵌入 (inline)操作符变为标准 C的一部分,宏是方便产生嵌入代码的唯一方 法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。 .; 三重条件操作符的知识。这个操作符存在 C语言中的原因是它使得编译器能产生比 if-then-else更优化的代码,了解这个用法是很重要的。 .; 懂得在宏中小心地把参数用括号括起来 .; 我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会
发生什么事? least = MIN(*p++, b);
int a; // An integer
int *a; // A pointer to an integer
int **a; // A pointer to a pointer to an integer
d) int a[10]; // An array of 10 integers
e) int *a[10]; // An array of 10 pointers to integers
f) int (*a)[10]; // A pointer to an array of 10 integers
g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer
h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer
6. 关键字 static的作用是什么? 这个简单的问题很少有人能回答完全。在 C语言中,关键字 static有三个明显的作用: .; 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 .; 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变 量。 .; 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然 不懂得本地化数据和代码范围的好处和重要性。
7.关键字 const有什么含意?
下面的声明都是什么意思?
const int a; int const a; const int *a; int * const a; int const * a const; /******/
前两个的作用是一样, a是一个常整型数。第三个意味着 a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)。第四个 意思 a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。最后一个意味着 a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)。如果应试者能正确回答这些问题,那么他就给我留 下了一个好印象。顺带提一句,也许你可能会问,即使不用关键字 const,也还是能很容易写出功能正确的程序,那么我为什么还要如此看重关 键字 const呢?我也如下的几下理由:
.; 关键字 const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。如果 你曾花很多时间清理其它人留
您可能关注的文档
- 小学数学高效整理和复习方法培养.doc
- 小学毕业作题文目集锦.doc
- 小学毕业总复习基本知识汇总.docx
- 小学毕业水测平试语文.doc
- 企业战略的管理试卷2.doc
- 小学毕业班学情解析复习计划.docx
- 小学法制教育调查问卷[学生卷].doc
- 小学毕业考试前致家长一封信.doc
- 小学爱国主义教育主题班会.doc
- 小学班主任培训案例分析.doc
- (正式版)DB33∕T 2574-2023 《 数字乡村建设规范 》.pdf
- (正式版)DB33∕T 2554-2022 《“GM2D”进口商品数据元 》.pdf
- (正式版)DB33∕T 2573-2023 《 助残护理员照护服务规范 》.pdf
- (正式版)DB33∕T 2542-2022 《餐饮计量规范 》.pdf
- (正式版)DB33∕T 2558.1-2022 《林下套种菌药生产技术规程 第1部分:大球盖菇》.pdf
- (正式版)DB33∕T 2558.3-2022 《林下套种菌药生产技术规程 第3部分:羊肚菌 》.pdf
- (正式版)DB33∕T 2575-2023 《 野生猛禽和涉禽安全救护技术规程 》.pdf
- (正式版)DB33∕T 2544-2022 《森林人家建设规范》.pdf
- (正式版)DB33∕T 310010-2021 《沿海防护林生态效益监测与评估技术规程》.pdf
- (正式版)DB33∕T 3004.1-2015 《农村厕所建设和服务规范 第1部分:农村改厕管理规范 》.pdf
最近下载
- ALPINE 阿尔卑斯制动液 DOT 4 化学品安全技术说明书.pdf
- 中国CSCO肝癌诊疗指南2025.docx VIP
- 利用偶氮酪蛋白测定蛋白酶的活性.pdf VIP
- 绿袖子(理查德·克莱德曼演奏版)调钢琴谱五线谱.pdf VIP
- 下肢动脉硬化闭塞症及糖尿病足的外科治疗----杂交技术的临床应用PPT.ppt
- WS∕T 225-2024 临床化学检验血液标本的采集与处理.pdf
- 部编人教版三年级下册语文全册1-8单元知识要点背诵小结汇编(期末总复习资料).doc VIP
- 线路改迁施工组织设计.docx VIP
- 中国临床肿瘤学会(CSCO)肝细胞性肝癌诊疗指南2025.docx
- AI赋能课堂教学创新 课件.pptx VIP
原创力文档

文档评论(0)