您的位置:首页 > 财经 > 产业 > 建筑模拟3中文版下载_网页设计培训学些什么_windows优化大师下载_java培训机构

建筑模拟3中文版下载_网页设计培训学些什么_windows优化大师下载_java培训机构

2024/11/16 8:37:42 来源:https://blog.csdn.net/qq_64171874/article/details/142750622  浏览:    关键词:建筑模拟3中文版下载_网页设计培训学些什么_windows优化大师下载_java培训机构
建筑模拟3中文版下载_网页设计培训学些什么_windows优化大师下载_java培训机构

单片机面试

  • 1.预处理&关键字
  • 2.数据类型
  • 3.内存管理
  • 4.裸机

1.预处理&关键字

1.1 宏定义是在编译的哪个阶段被处理的?
答案:宏定义是在编译预处理阶段被处理的。
预处理包含:头文件包含,宏替换,条件编译,去除注释,添加行号。
1.2写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。

#define MIN(A,B)  ((A)>(B) ? (B):(A))

1.3已知数组table,用宏求数组元素个数。

#define  COUNT(table)  (sizeof(table) / sizeof(table[0]))  

1.4带参宏和函数的区别?
1.带参宏在预处理阶段进行了文本替换,比函数运行要快,内存占用较大。
2.函数调用的时候会分配临时内存,运行时间大(因为需要分配单元,保留现场,值传递,返回等),同时宏不存在类型问题,宏名和宏参数无类型,而函数的实参和形参都有定一类型。
1.5关键字volatile的作用是什么?
告诉编译器不要去优化这个变量的值,因为这个变量可能会被意想不到地改变。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。
1.6如何用C语言实现读写寄存器变量?

#define rBANKCON0  (*(volatile unsigned long *)0x48000004) 
rBANKCON0 = 0x12;

1.7在C语言中,凡是以#开头的都是预处理命令,同时预处理命令都是以#开头的
1.8 关键字static的作用是什么?
1.修饰句柄变量:1.改变其存储位置,存在静态区。2.改变其生命周期为整个源程序,不会应函数调用结束而失去值。
2.修饰全局变量:修改其作用域为本.c文件,不允许其他文件进行调用。
3.修饰函数:改变了其作用域,只可被本.c文件内的其它函数调用。
下面是关键字const的使用示例,请说明它们的作用

1const int a;           // a是一个整形常量  int const a;           // a是一个整形常量  2const int *a;          // a是一个指向整型常量的指针变量  int * const a;         // a是一个指向整型变量的指针常量  int const * const a = &b;  // a是一个指向整型常量的指针常量  3char *strcpy(char 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com