学习笔记之被老师问倒的问题

来源:互联网 发布:微信公众号对接数据库 编辑:程序博客网 时间:2024/04/30 06:15

 

Register 关键字

Volatile关键字使用来禁止编译器优化变量的,也就是说会直接访问该变量的内存而不是将它加到寄存器中,避免了当被修改时有写入延迟。   常用到多线程当中,避免一个线程修改了变量的值而第二个线程访问的仍旧是原来的旧值。

 

Sizeof是一个运算符,是只计算数据的类型所占的内存大小,会自动进行相应的类型转换。

Sizeof(“hello”);将会计算出  6个字节,因为这个字符串会转换成一个包含‘\0’在内的字符数组进行求占内存大小。所以就会是6个字节。同理的sizeof  7 会被转换成int 从而得出结果 4个直接。

 

Const 在c 和 c++中的区别

 

C++const正常情况下可以看作是编译期间的常量,因为定义的产量不会被分配内存,只是放到了符号表当中,相反c中还是会当做变量来处理进行正常的分配内存因此就造成了在编译时无法确定值的情况。。

例如const int size = 10;  int arr[size];则可以看作是常量。

但是int id = 10;   const int size = id;  int arr[size];就是错的这是个不可更改值的变量而不是常量。

另外const int id = 10;  const int size = id; int arr[size];则又能在C++中编译通过。

C++中如果想要在其他文件内使用const 变量/常量 那么需要加上关键字extern 

而上面的情况在C中不会存在;前者编译const 时使用了内部链接而后者使用了外部链接 。

 

0 0