嵌入式C语言面试参考知识点

导读: 1.const的作用是什么?第一,限定一个只读变量(不是常量)。如const double PI=3.14;第二,限定函数参数,如,void function(const char *p)//函数只能读取不能改变其变量p

丝瓜网小编提示,记得把"嵌入式C语言面试参考知识点"分享给大家!

1.const的作用是什么?

第一,限定一个只读变量(不是常量)。如const double PI=3.14;第二,限定函数参数,如,void function(const char *p)//函数只能读取不能改变其变量p的值

2.关键字volatile有什么含意?

volatile影响编译器编译的结果"指出,volatile变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错。

3.嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit3,第二个清除a的bit3。在以上两个操作中,要保持其它位不变。

(1)把a的bit3赋值为1:a|=(0x01<<3);//a或等于1左移3位,这样保证其他的位不变,bit3被赋值为1;

(2)把a的bit3清除:a&=~(0x01<<3);//a与等于(1左移3位之后取反),这样保证其他的位不变,bit3被清除。

4.用typedef自定义的数据类型?

(1)用来定义一种类型的别名,这样,可以用它来连续定义变量,而不是简单的宏替换,比如:typedef char *PCHAR;PCHAR pa"pb;

(2)在C时代,定义了一个结构体之后,再使用的时候还要加上struct关键字才能用来定义变量,这样会比较麻烦,而使用typedef来定义之后,就可以不用写struct关键字了,比如:typedef struct tagPOINT{int x;int y;}POINT;POINT p1;当然",C++里可以不用这样,因为C++使用结构体的时候不需要加struct关键字;

(3)用typedef来定义与平台无关的类型。比如你有一个跨平台的项目,需要统一使用一种双精度浮点型的类型,而在一些平台上可能没有这种实现,或者实现不同,这时候你就可以根据不同的平台来定义你自己的类型4,用来使复杂的定义简单化,最常用的就是给函数指针定义一个别名所以,总的来说,typedef并不是"发明"了另外一种新类型,而相当于是一种类型的别名,为了方便使用。

丝瓜网 crfgs.com