字节填充 VC++在Debug编译方式下,new的内存用0xcd(助记词为Cleared Data)填充,防止未初始化: delete后,内存用0xdd(Dead Data)填充,防止再次被使用. 这样有利于调试内存错误.之所以选择这样的填充模式,是因为: A 大数,若被当成指针就会越界: B 奇数,指针通常指向偶数地址: C 非0,这样不会和NULL混淆. 在Release编译方式下不会用这些字节填充.…
https://msdn.microsoft.com/en-us/library/xz7ttk5s.aspx Optimizing Your Code Visual Studio 2015 The latest version of this topic can be found at Optimizing Your Code. By optimizing an executable, you can achieve a balance between fast execution spee…
编译方式介绍 相比较于 Eclipse 的实时自动编译,IntelliJ IDEA 的编译更加手动化,虽然 IntelliJ IDEA 也支持通过设置开启实时编译,但是不建议,因为太占资源了.IntelliJ IDEA 编译方式除了手工点击编译按钮进行编译之外,还有就是在容器运行之前配置上一个编译事件,先编译后运行.默认下 IntelliJ IDEA 也都是这样的设置,所以实际开发中你也不用太注意编译这件事.虽然 IntelliJ IDEA 没有实时编译,但是对于代码检查完全是没有影响.但是多个…
C++2.0以后全面支持虚函数与虚继承,这两个特性的引入为C++增强了不少功能,也引入了不少烦恼.虚函数与虚继承有哪些特性,今天就不记录了,如果能搞了解一下编译器是如何实现虚函数和虚继承,它们在类的内存空间中又是如何布局的,却可以对C++的了解深入不少.这段时间花了一些时间了解这些玩意,搞得偶都,不过总算有些收获,嘿嘿. 先看一段代码class A{ virtual aa(){};}; class B : public virtual A{ char j[3]; …