随笔分类 - [01]C/C++
摘要:(转)C++中extern “C”含义深层探索1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可...
阅读全文
摘要:下面的代码能够看出什么地方出了问题吗?线程函数:DWORDWINAPIThreadProc(while(!bTerminate){//从一个链表中读取信息并且插入到CListCtrl中//CListCtrl的句柄是通过线程参数传递进来的for(;;){ReadInfoFromList();InsertToCListCtrl();}}}主线程中使用CreateThread启动线程。当想终止子线程时,在主线程中:bTerminate = TRUE;WaitForSingleObject(threadHandle, INFINITE);可是,以运行到WaitForSingleObject,子线程就C
阅读全文
摘要:我们在实现应用中可能有时要使用下标操作,比如:CO2下面就是这样一个类:View Code 1//CharStatic.h:headerfile2//34#pragmawarning(disable:4786)5#include<iostream>6usingnamespacestd;7#include<map>89/////////////////////////////////////////////////////////////////////////////10//CCharStaticwindow11classCCharStatic:publicCStati
阅读全文
摘要:C++中的异常处理机制通常的异常抛出和处理主要使用下面这三个关键字:try\throw\catch.一、处理形式try{ //可能出现异常的代码块}catch(类型名 形参名) //捕获特定异常{ //特定异常处理}catch(...) //捕获所有的异常处理方法{ //所有异常处理}二、 异常的接口声明为了加强程序的可读性,使函数的用户能够方便地知道所使用的函数会抛出哪些异常,可以在函数的声明中列出这个函数可能抛出的所有异常类型,例如: void fun() throw( A,B,C,D);这表明函数fun()可能并且只可能抛出类型(A,B,C,D)及其子类型的异常。如果在函数的声明中没有包
阅读全文
摘要:随机字符串函数代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1char*GetRandString(charvCode[],intnumber)2{3 char*pvCode=vCode;4 strcpy(vCode,"");5charverificationValue[64]="00123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
阅读全文
摘要:[代码]下面是select模型的举例:代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--1SOCKETm_sockSrv=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);2if(m_sockSrv==INVALID_SOCKET)3 {4 cout"Error:"WSAGetLastError()endl;5returnfalse;6 }7SOCKADDR_INaddrSrv;8 addrSrv.s
阅读全文
摘要:一个旅行社要从n个旅客中选出一名旅客,为他提供免费的环球旅行服务。旅行社安排这些旅客围成一个圆圈,从帽子中取出一张纸条,用上面写的正整数m(<n)作为报数值。游戏进行时,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,报m的人被淘汰出列,然后从他顺时针方向上的下一个人开始重新报数,如此下去,直到圆圈中只剩下一个人,这个最后的幸存者就是游戏的胜利者,将得到免费旅行的奖励。代码如下:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--
阅读全文
摘要:化简分数--练习题代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1intGcw(intu,intv);2/*****************************************************/3//化简分数4//molecular:分子,denominator:分母5/*****************************************************/6voidSimplification
阅读全文
摘要:环境 VC6.0 控制台代码 #include<stdio.h>#include<stdlib.h>#include<memory.h>#defineSIZE_NODE100#defineSIZE_BLOCK15voidmain(){intn=0,m=0;printf("请输入节点数(小于等于%d的正整数):",SIZE_NODE);scanf("%u",&am...
阅读全文
摘要:C语言位操作(转) 在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。 位运算符C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位...
阅读全文
摘要:#include "stdafx.h"#include <iostream>using namespace std;template <class T>class MyArray{ int len;public: T *data; MyArray() { data = NULL; len = 0;} ~MyArray(){ delete[] data;} T& o...
阅读全文
摘要:char *strcpy(char *strDest,const char *strSrc){ assert((strDest != NULL) && (strSrc != NULL)); //如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句。 char *address = strDest; while((*strDest...
阅读全文
摘要:u,v为两个整形变量最大公约数 实现:int gcw(int u,int v){ if(0==u%v) return v; u=u%v; if(1==u) return -1;//没有最大公约数 return gcw(v,u);}最小公倍数 实现:最小公倍数 = U*V/最大公约数及 (u*v)/gcw(u,v)。
阅读全文
摘要:1. 在数字前面加0代表8进制: 012,023 为8进制12和23。2. 在数字前面加0x代表16进制: 0x12,0x23 为16进制12和23。3. 用8进制和16进制表示一个字符: '\12' 八进制表示 '\0x12' 十六进制表示
阅读全文
摘要:本文转自中国源码网http://www.yuanma.org/data/2006/0723/article_1213.htm一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放...
阅读全文
摘要:这是N年前写的代码void inorder(BTCHINALR *bt)/*中序遍历二叉树(递归算法)*/{ if(bt != NULL){ inorder(bt->lchild); printf("%c ",bt->data); inorder(bt->rchild); }}void lastorder(BTCHINALR *bt)/*后序遍历二叉树(递归算法)...
阅读全文
摘要:使用ATL宏进行Unicode转换#include "atlconv.h"USER_CONVERTION;设Unicode串为wstrunicode;W2A(wstrunicode) ;//将unicode转为char * 还可以使用OLE2A(wstrunicode)W2CA(wstrunicode);//将unicode转为const char*W2T(wstrunicode) ;//将uni...
阅读全文
摘要:数字0-9——(48-57),(0x30-0x39)字母a-z——(97-122),(0x61-0x7a)字母A——(65-90),(0x41-0x5a)回车——13,0x0d
阅读全文
摘要:const char*——指向常量的指针 不能修改其指针的内存中的内容,但可以修改其指向的内存地址。 这样将const char* 作为形参来传递参数,就能保证数据的一致性。char* const——指针常量 能修改其指向内存中的内容,但不可以修改其指向的内存地址。
阅读全文

浙公网安备 33010602011771号