✨✨最全的计算机类八股文来了(敲小黑板了
1、C/C++
1.1 关键字
(参考”嵌入式及Linux那些事“以及众多帖子汇总而成)
volatile
当声明指向设备寄存器的指针时一定要用volatile,它会告诉编译器不要对存储在这个地
址的数据进行假设。
中断服务程序中修改的供其他程序检测的变量。 中断中直接从变量地址中读取数据,而不是从寄存器中读取。
多线程应用中被几个任务共享的变量。
static
1、函数体内的变量,这个变量只被声明一次。
2、在模块内的变量,表示只能被模块内函数使用,不能被模块外函数访问,表示本地全局变量
3、模块内的函数,限制在模块内使用,同上。
extern
1、引用同一文件变量
使用在声明之前时,可以使用关键字extern,让声明在程序任意位置。
2、引用另一个文件中的变量
extern可以引用其他文件中的全局变量,而且extern只需要指明数据类型和
extern int num=4; 这样不行。
3、引用另一个文件中的函数
可以不用包含头文件引用函数。
new/delete malloc/free
1、new/delete是操作符,malloc/free是库函数
2、new/delete可以调用构造函数/析构函数,m/f 只是分配内存。
struct 和 union区别
1、联合体公用一块地址空间,联合体变量长度等于最长的成员的长度
2、对不同成员赋值,会将其他成员重写。
const
1、定义变量为常量
2、修饰参数为常量
3、修饰返回值为常量
总结:只读
sizeof和strlen
1、sizeof是运算符,strlen是函数
2、sizeof可以用类型、函数作为参数,strlen只能计算char*,还必须以/0结尾
3、sizeof编译的时候计算,strlen是运行期计算,表示字符串长度,不是内存大小。
typedef和 define
1、都是替对象去一个别名,增强程序的可读性
2、define为预处理指令,不做正确性检查,只有带入之后才能发现
3、typedef用来定义类型别名,不止包含内部类型还包含自定义类型(与机器无关),方便记忆
4、define不仅可以给类型取别名,还能定义常量、变量、编译开关。
5、define没有作用
1.1 关键字
(参考”嵌入式及Linux那些事“以及众多帖子汇总而成)
volatile
当声明指向设备寄存器的指针时一定要用volatile,它会告诉编译器不要对存储在这个地
址的数据进行假设。
中断服务程序中修改的供其他程序检测的变量。 中断中直接从变量地址中读取数据,而不是从寄存器中读取。
多线程应用中被几个任务共享的变量。
static
1、函数体内的变量,这个变量只被声明一次。
2、在模块内的变量,表示只能被模块内函数使用,不能被模块外函数访问,表示本地全局变量
3、模块内的函数,限制在模块内使用,同上。
extern
1、引用同一文件变量
使用在声明之前时,可以使用关键字extern,让声明在程序任意位置。
2、引用另一个文件中的变量
extern可以引用其他文件中的全局变量,而且extern只需要指明数据类型和
extern int num=4; 这样不行。
3、引用另一个文件中的函数
可以不用包含头文件引用函数。
new/delete malloc/free
1、new/delete是操作符,malloc/free是库函数
2、new/delete可以调用构造函数/析构函数,m/f 只是分配内存。
struct 和 union区别
1、联合体公用一块地址空间,联合体变量长度等于最长的成员的长度
2、对不同成员赋值,会将其他成员重写。
const
1、定义变量为常量
2、修饰参数为常量
3、修饰返回值为常量
总结:只读
sizeof和strlen
1、sizeof是运算符,strlen是函数
2、sizeof可以用类型、函数作为参数,strlen只能计算char*,还必须以/0结尾
3、sizeof编译的时候计算,strlen是运行期计算,表示字符串长度,不是内存大小。
typedef和 define
1、都是替对象去一个别名,增强程序的可读性
2、define为预处理指令,不做正确性检查,只有带入之后才能发现
3、typedef用来定义类型别名,不止包含内部类型还包含自定义类型(与机器无关),方便记忆
4、define不仅可以给类型取别名,还能定义常量、变量、编译开关。
5、define没有作用
全部评论
八股在哪呢
学长在汇川技术工作,工控领域龙头企业,欢迎学弟学妹们投递,内推码: IZBEBJ
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享