✨✨最全的计算机类八股文来了(敲小黑板了

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没有作用
全部评论
八股在哪呢
点赞 回复 分享
发布于 2023-10-03 21:40 山东
学长在汇川技术工作,工控领域龙头企业,欢迎学弟学妹们投递,内推码: IZBEBJ
点赞 回复 分享
发布于 2023-09-25 23:14 江苏

相关推荐

评论
7
49
分享

创作者周榜

更多
牛客网
牛客企业服务