摘要:
signed char ch=0xe0;unsigned int i=ch;那么i是多少?这样就要涉及到一些补全知识,对于signed类型 右移补符号位,如果符号为是0就补0,1就补1,无符号当然都是0补0;而这里i到底是根据i本身的符号位补还是ch的符号位补?输出i结果是429......,可知补全的是1,那么说明是根据ch来补全了,这个记下. 阅读全文
摘要:
bss段:BSS段(bsssegment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文BlockStarted by Symbol的简称。BSS段属于静态内存分配。data段:数据段(datasegment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。text段:代码段(codesegment/textsegment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读,某些架构也允许代码段为可写,即允许修改程序。在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。ro 阅读全文
摘要:
也许大家都有过这样的疑惑:const_cast可以去除一个常量的const属性,去除const属性后应该可以对“常量”进行修改,通过调试器发现内存中的值是被改变的,可是再传递这个“常量”的时候,值却一直保持原状,实在古怪,在Windows下用VC、尝试如此,在Linux下用g++尝试也如此,我原先以为和编译器的优化选项有关系,把所有优化选项关闭,照样没用,为什么?写了个程序进行测试:双击代码全选1234567891011121314151617181920212223242526272829#include using namespace std;void Fun(int &value 阅读全文