C语言深度剖析
文章平均质量分 55
深度解剖C语言的细节
qincjun
这个作者很懒,什么都没留下…
展开
-
关键字:register
尽量。原创 2024-10-05 22:05:21 · 329 阅读 · 0 评论 -
关键字:volatile
因为while语句中,并没有对flag进行修改,当在编译时,编译器可能自动优化代码,CPU在执行while判断时,不会再从对应的内存中读取数据,而是把这个flag数据直接拿到对应的寄存器中,不断的进行CPU检测;直接检测寄存器的值就可以了;——相对应的是,内存的变量永远不会被读取了,而是就近似的读取离cpu最近的寄存器(此情况是一种内存被覆盖的情况,cpu不再向内存中读取数据,而是向寄存器中读取数据。原创 2024-10-05 21:09:49 · 228 阅读 · 0 评论 -
struct和C++的类
1.1想看明白这章节,必须要懂得C语言的struct结构体、C语言深度解剖的static用法、理解声明与定义,C++的类和static用法;否则看起来有些吃力2.1struct结构体里面只能存储内置类型;比如:char、short、 int、float、int*等2.2static修饰局部变量,改变局部变量的生命周期,延长至全局;但是作用域不变(暂时不考虑使用指针操纵局部变量的情况)提出问题:在struct结构体中,使用static修饰局部变量,把他变为静态全局变量可以吗?答:错误,编译器报错,此处不能指定原创 2024-10-05 16:00:21 · 398 阅读 · 0 评论 -
关键字:static
1.1全局变量可以跨文件访问吗?答:可以;1.2函数可以跨文件访问吗?答:可以1.3在具体的应用场景中,程序员不想让全局变量或者函数跨文件访问,只在本文件内部被访问?答:可以——引出static关键字2.1static修饰全局变量,该变量只能在本文件内被访问,不能被外部其他文件直接访问;但是可以被间接访问——通过访问非static修饰的函数,访问static修饰的全局变量2.2static修饰函数,该函数只能在本文件内被访问,不能被外部其他文件直接访问;但是可以被间接访问——通过访问非static修饰的函数原创 2024-10-05 06:00:00 · 930 阅读 · 0 评论 -
关键字:const
const 修饰函数返回值,如果用户不想函数返回值被别人通过指针来更改函数内部的一个变量,可以对返回值做const修饰,在外部接收的时候,采用同样的编码规则去接收;这样在后续的使用这个变量的时候,就无法做修改了;原创 2024-10-04 20:59:21 · 672 阅读 · 0 评论 -
关键字:extern
1.1什么是声明?答:1.告诉编译器,这个名字已经匹配到一块内存上了,如果要使用可以直接使用;在下方的代码中,用到的对应的变量或对象是在别的地方或文件定义的;且同一个声明可以出现多次,编译器不会报错;2.告诉编译器,这个名字已经预定了,别的地方再也不能用它来作为变量名或对象名。1.2什么是定义?答:1.当(编译器)创建一个对象,为这个对象分配一块内存并给它 取上一个名字,这个名字就是我们经常所说的变量名或对象名;但是,一个变量或对象在一定的区 域内(比如函数内,全局等)只能被定义一次,如果定义多次,编译器会原创 2024-10-04 20:16:47 · 281 阅读 · 0 评论