2012-08-10 21:45
⁄ 工业·编程
⁄ 共 2321字
C/C++中的字符串问题在网上的讲解一向非常含糊,存在各个层次的库混用、滥用的情况,尤其是宽字符与窄字符等问题很难找到有效的资料,本篇随笔分享一下我长期收集到的一些比较准确的资料以及据此得到的个人理解.
C语言中的字符串
C语言中提供了两种字符类型char和wchar_t,C语言使用字符数组来表示字符串,同时支持两种直接量写法:"abcd"和 L"abcd" 来表示字符串常量文字量,C语言允许用字符串常量来初始...
c++阅读全文
2012-08-10 21:38
⁄ 工业·编程
⁄ 共 4576字
首先我们需要知道程序有没有内存泄露,然后定位到底是哪行代码出现内存泄露了,这样才能将其修复。最简单的方法当然是借助于专业的检测工具,比较有名如BoundsCheck,功能非常强大,相信做C++开发的人都离不开它。此外就是不使用任何工具,而是自己来实现对内存泄露的监控,分如下两种情况:
一. 在 MFC 中检测内存泄漏
假如是用MFC的程序的话,很简单。默认的就有内存泄露检测的功能。
&...
c++, 内存泄漏阅读全文
2012-08-09 04:25
⁄ 工业·编程
⁄ 共 4672字
在性能优化方面永远注意80-20原则,即20%的程序消耗了80%的运行时间,因而我们要改进效率,最主要是考虑改进那20%的代码。不要优化程序中开销不大的那80%,这是劳而无功的。
第一招:以空间换时间
计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值: 方法A:通常的办法 #define LEN 32 char string1 [LEN];...
c++, 优化阅读全文
2012-08-09 04:23
⁄ 工业·编程
⁄ 共 682字
一、注意虚拟析构函数的使用 假设 class CB : public CA; 这个时候若: CA *p = new CB(); delete p; 如果CA的析构函数不是虚拟的话,CB的析构函数就不会被执行,而只有CA的析构函数会被执行。 很多类并不是被设计作为基类的。只有类在行为...
c++, 总结, 软件开发阅读全文
2012-08-08 19:51
⁄ 工业·编程
⁄ 共 1468字
函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别。
malloc()函数有一个参数,即要分配的内存空间的大小:
void *malloc(size_t size);
calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小。
void *calloc(size_t numElements,size_t sizeOfElement);
如果调用成功,函数malloc...
c++, 区别阅读全文
2012-08-08 19:19
⁄ 工业·编程
⁄ 共 808字
1、类型不同 BOOL为int型 bool为布尔型
2、长度不同 bool只有一个字节 BOOL长度视实际环境来定,一般可认为是4个字节
3、取值不同 bool取值false和true,是0和1的区别 BOOL取值FALSE和TRUE,是0和非0的区别
bool是标准C++数据类型,可取值t...
c++, 区别阅读全文
2012-08-08 19:16
⁄ 工业·编程
⁄ 共 415字
1、 int <->CString
1) int ->CString
int n = 1;
CString str;
str.Format("%d",n);
2) CString->int
CString str = "1";
int n = atoi(str.GetBuffer(0));
2、char* 与CString
1)char*->CString
char sz[128];
CString str;
str.Format("%s",sz);
2) CString -> char*
CString str;
//int nLength = str.GetLength();
char* sz = str.GetBuffer(0);
3、float<->CStrin...
c++, 数据类型阅读全文
2012-08-08 18:53
⁄ 工业·编程
⁄ 共 800字
在对fread使用时,每次读取完毕后,一定要判断返回值,如果返回值小于等于0,则表示读取失败,fp读取的是最后一个正确的内容。不要盲目相信文件的大小,比如下面代码:
FILE* fp = NULL;
fp = fopen("1.html", "r");
if (fp == NULL)
return;
int nFp = fileno(fp);//将文件描述符转为句柄
int len = filelength(nFp);
XmlRpcValue::BinaryData& dat...
c++阅读全文
2012-08-08 18:23
⁄ 工业·编程
⁄ 共 1333字
mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。
在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。它只能用于类的非静态和非常量数据成员.
我们知道,一个对象的状态由该对象的非静态数据成员决定,所以随着数据成员的改变,对像的状态也会随之发生变化!如果一个类的成...
c++阅读全文
2012-08-08 16:15
⁄ 工业·编程
⁄ 共 1360字
类对象的构造顺序是这样的:
1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员
初始化阶段可以是显式的或隐式的,取决于是否存在成员初始化表。隐式初始化阶段按照声明的顺序依次调用所有基类的缺省构造函数,然后是所有成员类对象的缺省构造函数。
2.进入构造函数后在构造函数中执行一般计算
计算阶段由构造函数体内的所有语句构成。在计算阶段中,数据成...
c++阅读全文