高质量嵌入式LinuxC第二章整理

2019-07-12 18:26发布

第二章:数据类型
  1. C语言中有哪些 数据类型?
    基本数据类型:整型,实型,字符型
    更复杂的数据结构:构造类型,指针类型,枚举类型,空类型
  2. 什么是变量以及对变量的一些认知以及其与常量的区别?
           定义:其值在其作用域内可以改变的量成称为变量
           注意事项:一个变量应该有一个名字,在内存占据一定的储存空间;变量在使用前必须要定义;每个变量都有自己的地址;变量的只可以被改变,意味着他而已被覆盖,被写入,被赋值这也是它与常量的区别。
  3. 声明与定义的区别?
          定义:定义就是编译器创建一个对象,为这个对象分配一块内存,并取变量名,且只能定义一次。
          声明:1.告诉编译器这个名字已经匹配到一块内存中了。可以多次声明
                2.告诉编译器这个名字这个名字已经被预定了,其他地方不可使用它来作为变量名或者对象名。
  4. Typedef的作用?
          作用:为一种数据类型(包括内部数据类型和自定义数据类型)定义一个简单明确的新名字,同时简化一些比较复杂的类型声明。
          
  5. 枚举的作用以及与#define宏的区别?
          我们所说的枚举实际是枚举变量,而括号内是他的取值范围;
          枚举变量还可以给其中常量符号赋值,如果不赋值则会从被赋初值的那个常量开始一次加一,如果没有赋值,则他们的值从0开始依次递增1.
          区别:1.#define宏常量是在预编译阶段进行简单替换,枚举变量则是在编译的时候确定其值。一般在编译器里,可以调试枚举常量,但不能调试宏变量:枚举可以一次定义大量相关变量,而#define宏一次只能定义一个。
  6. 联合体的定义 以及使用?
  7.       在联合体中,各成员共享一段内存空间一个联合变量的长度等于各成员中最长的长度(同时遵循对齐);
          使用格式: 联合体变量.成员变量名
  8. Static与extern 的作用?
          static修饰变量,是指该变量空间独立于函数中的auto变量或者栈变量,static变量空间在内存中的静态区内分配;
          extern是指当前变量或函数不是在本源文件内声明的,他是外部变量或者外部函数。
  9. const,register,volatile的作用?
           const:不仅可以修饰基本类型,它还经常用来修饰结构类型,指针及其参合体
           Register:如果一个变量被register修饰,就意味着会作为一个寄存器变量,让该变量的发访问速度达到最快。
           Volatile:其作用是在每次进行访问时去内存中读取。