2012-11-24 23:02
⁄ 工业·编程
⁄ 共 4069字
先说个题外话:早些年我学C程序设计时,写过一段解释硬盘MBR分区表的代码,对着磁盘编辑器怎么看,怎么对,可一执行,结果就错了。当时调试也不太会,又根本没听过结构体对齐这一说,所以,问题解决不了,好几天都十分纠结。后来万般无奈请教一个朋友,才获悉可能是结构体对齐的事,一查、一改,果真如此。
问题是解决了,可网上的资料多数只提到内存对齐是如何做的,却鲜有提及为什么这样做(即使提,...
c++阅读全文
2012-11-24 22:57
⁄ 工业·编程
⁄ 共 2085字
在C++中,如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。
但我并不想说enum怎么定义与怎么说明的,而要说的是enum在C++编译器中是如何处理的。我们先看一个例子: enum D { B, C };
const char B = 'B';
int _tmain(int argc, _TCHAR* argv[]) { return 0; }
如果按照上面的程序进行编译,会...
c++阅读全文
2012-11-24 22:45
⁄ 工业·编程
⁄ 共 1903字
stdafx全称Standard Application Fram Extend。没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。
Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了为避免这种浪费,AppW...
c++阅读全文
2012-11-24 22:43
⁄ 工业·编程
⁄ 共 2057字
在调用成员函数之前,必须先把参数压到栈中,然后再进入成员函数中,成员函数依次把参数从栈中取出来,在函数返回之前或返回之后,必须恢复栈的当前位置,才能保证程序的正常运行。
>>>C++学习:CALLBACK, WINAPI, AFXAPI和函数调用方式
几种函数调用方式
__cdecl 是C Declaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称...
c++阅读全文
2012-11-24 21:58
⁄ 工业·编程
⁄ 共 1943字
通过基类的指针来删除派生类的对象时,基类的析构函数应该是虚的。否则其删除效果将无法实现。一般情况下,这样的删除只能够删除基类对象,而不能删除子类对象,形成了删除一半形象,从而造成内存泄漏。
原因: 在公有继承中,基类对派生类及其对象的操作,只能影响到那些从基类继承下来的成员。如果想要用基类对非继承成员进行操作,则要把基类的这个操作(函数)定义为虚函数。那么...
c++阅读全文
2012-11-24 21:06
⁄ 工业·编程
⁄ 共 3010字
一、无符号,有符号数的比较问题
C/C++中规定,两种类型比较,如果两种类型的内存占用一致的话。则默认转型至无符号数,如果两种类型内存占用不移植,则默认转型至内存占用更大的类型。
例如:
#include <stdio.h> int main(int argc, char **argv) { int i=-1; unsigned int j = 2; ...
c++, 细节阅读全文
2012-11-24 20:35
⁄ 工业·编程
⁄ 共 1424字
编译器为什么要替我们内存对齐?
学了计算机组成原理,了解了内存的基本单元是一个字节,内存可以随机寻址,于是乎我天真的认为内存就是一个字节型的容器,基本单位是单个字节。
Figure 1. 我眼中的内存空间布局
悲剧的是,内存读写的真正访问者cpu不是这么想的。cpu是根据内存访问粒度(memory access granularity,下文简写成MAG)来读取内存,MAG就是cpu一次内存访问操作的数据量,具体数值依赖于特定的...
c++, 内存阅读全文
2012-11-24 20:33
⁄ 工业·编程
⁄ 共 211字
overload(重载),即函数重载:
在同一个类中;
函数名字相同;
函数参数不同(类型不同、数量不同,两者满足其一即可);
不以返回值类型不同作为函数重载的条件。
override(覆盖),用于实现C++中多态:
分别位于父类和子类中;
子类改写父类中的virtual方法;
与父类中的函数原型相同。
overwrite(重写):
与overload类似,但是范围不同,是子类改写父类;
与override类似,但是父类中的方法不是虚函数。
c++阅读全文
2012-11-24 19:49
⁄ 工业·编程
⁄ 共 1445字
看到大家在代码中有很多用wcscpy、strcpy等的,这里总结下给大家参考下,希望对大家有帮助(这里的API都是windows平台下的,linux下的应该也有类似的替换函数):
_tcscpy、_tcscpy_s 都是不安全的,换成_tcsncpy /_tcsncpy_s好些,最好用_tcsncpy_s
wcscpy、wcscpy_s都是不安全的,换成wcsncpy / wcsncpy_s好些,最好用wcsncpy_s
非unicode 函数类似,linux版本类似。
下面是一些会导致出错的代码,直接都可以运...
c++阅读全文
2012-11-24 19:26
⁄ 工业·编程
⁄ 共 4979字
一、故障或失误概况
局端MCU项目中CSS(Conference Schedule System)、NMS(NetWork Management System)模块自2.03版本起就有内存泄露的问题,开发 NGN版本时也花过大量的精力来争取解决这个问题,虽然也修正了一些内存泄漏,但最终检测工具表面现象显示剩下的内存泄露都是所使用的开发库的代码产生的,于是也就大意的认为是所使用的ACE/TAO库本身有内存泄漏,于是无果而终,使这两个模块的内存泄漏问题一直...
c++, 内存泄漏, 总结阅读全文