高质量嵌入式Linux C编程 第二章 数据 学习笔记

2019-07-13 05:07发布

一、什么是数据类型?
数据类型包含两方面的内容,数据的表示和对数据加工的操作。数据的全部可能表示构成数据类型的值的集合,数据全部合理的操作构成数据类型的操作集合。
二、什么是变量?
其值在作用域内可以改变的量称为变量。一个变量应该有一个自己的名字,在内存中占据一定的存储空间。变量在使用前必须被定义,每个变量都有自己的地址。
三、什么是常量?
其值不会发生改变的量称为常量。常量是可以不经过定义和初始化,而直接引用的,常量又分为直接常量和符号常量,直接常量又叫字面常量,符号常量,如定义的#define PI 3.14.
四、有哪些基本的内置类型?
整型、实型、构造类型、指针类型、枚举类型、void类型。
五、什么是声明,什么是定义?
定义就是编译器创建一个对象,为这个对象分配一块内存并给它取上一个名字,这个名字就是我们常说的变量名或者对象名。
声明有两重含义,第一重:告诉编译器,这个名字已经匹配到一块内存上了;第二重:告诉编译器这个名字我已经预定了,其他地方不可以使用它来作为变量名或对象名。
六、const修饰的到底是谁?
将类型去掉,看const直接修饰的是谁。
七、typedef和#define有什么区别?
typedef是为一个类型取新名字,而#define只是简单的字符串替换
八、枚举类型的使用方法? enum enum_type_name { ENUM_CONST_1, ENUM_CONST_2, ....... ENUM_CONST_N }enum_variable_name; enum_type_name为自定义的一种数据类型名,而enum_variable_name为enum_type_name类型的一个变量,取值范围只能在enum_type_name之内
九、联合体的定义?
联合体的定义和结构体相似。
十、联合体判断cpu工作于Little endian还是Big endian int checkcpu() { union w { int a; char b; }c; c.a = 1; return (c.b == 1); } 我们将int型数值1写入一个内存开始处,在计算机中从高位到低位存储为1000,再用char型变量输出,如果输出1000,则计算机是big endian工作模式,输出1,则计算机工作在little endian模式。