
程序设计
文章平均质量分 78
gothicane
这个作者很懒,什么都没留下…
展开
-
C代码优化方案
C代码优化方案 华中科技大学计算机学院 姓名: 王全明QQ: 375288012Email: quanming1119@163.com目录目录__ 2C代码优化方案__ 41、选择合适的算法和数据结构__ 42、使用尽量小的数据类型__ 53、减少运算的强度__ 5(1)、查表(游戏程序员必修课)_ 5(2)、求余运算__ 6(3)、平方运算__ 6(转载 2008-10-16 17:11:00 · 934 阅读 · 0 评论 -
[图]Linux堆内存释放的总结
[图]Linux堆内存释放的总结蓝森林 http://www.lslnet.com 2006年4月6日 21:05 Linux用户进程是如何释放内存的 Linux进程使用内存的基本流程: 见图1 从图中我们可以看出,进程的堆,并不是直接建立在Linux的内核的内存分配策略上的,而是建立在glibc的堆管理策略上的(也就是glibc的动态内存分配策略上),堆的管理是由g转载 2007-12-18 13:25:00 · 1017 阅读 · 0 评论 -
操作符重载手册(经典收藏)
一、重载规则I.可以重载的操作符 + - * / % ^ & | ~转载 2007-12-20 14:20:00 · 476 阅读 · 0 评论 -
sscanf的一些用法
sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型:Int sscanf( string str, string fmt, mixed var1, mixed var2 ... );int scanf( const char *format [,argument]... ); 说明:sscanf与scanf类似,都是用于输入的,只是后者以屏幕(转载 2008-03-02 00:06:00 · 689 阅读 · 0 评论 -
[C++]关于C++中继承、重载、掩盖
关于C++中继承、重载、掩盖MoaKap在开始之前,我们可以先看下面这个小程序:#include using namespace std; class Base{private: int x;public: virtual void mf1() { cout"Ba转载 2007-12-06 17:35:00 · 531 阅读 · 0 评论 -
C语言宏定义技巧
1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef unsigned char boolean; /* Boolean value type. */ type转载 2008-02-20 11:07:00 · 711 阅读 · 0 评论 -
strcpy的疑问
//-----------------------------------------------------------------------------//----------------------------------------------------------------------------#include stdio.h>#include string.h>转载 2008-02-19 12:54:00 · 495 阅读 · 0 评论 -
哈希表及相关
Hashing定义了一种将字符组成的字符串转换为固定长度(一般是更短长度)的数值或索引值的方法,称为散列法,也叫哈希法。由于通过更短的哈希值比用原始值进行数据库搜索更快,这种方法一般用来在数据库中建立索引并进行搜索,同时还用在各种解密算法中。 设所有可能出现的关键字集合记为U(简称全集)。实际发生(即实际存储)的关键字集合记为K(|K|比|U|小得多)。|K|是集合K中元转载 2008-01-29 13:51:00 · 723 阅读 · 0 评论 -
教你理解复杂的C/C++声明
陆其明 译原文:http://www.codeproject.com/cpp/complex_declarations.asp 作者:Vikram A Punathambekar介绍曾 经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明:我们将从每天都能碰到的较简单的声明入手,然后逐转载 2008-02-02 14:06:00 · 496 阅读 · 0 评论 -
C语言的静态映射声明
前段时间,准备设计一个关于出错信息的表,每一个错误有一个唯一的ErrID,和对应的错误信息以及其他辅助信息。在C语言中,很自然的实现如下:enum { ERR_ID_1, ERR_ID_2, ERR_ID_3, ERR_ID_4} ErrID;const char* errmsg[] = { "This is Error 1 msg", /*ERR_ID_1*转载 2007-11-14 14:10:00 · 665 阅读 · 0 评论 -
C++的成员函数指针简要
C++的成员变量指针和普通的指针没有什么大的区别,int类型成员变量的指针就是和int *, Foo类型的成员变量的指针就是Foo *,但是成员函数就不大一样了,主要是因为非静态成员函数实际上都隐藏这一个调用对象的指针的参数。静态成员函数指针,和普通的C函数指针没什么两样class Foo{public: static int foo();};int (*fp)() = Foo::foo转载 2008-01-28 10:07:00 · 512 阅读 · 0 评论 -
C++ 虚函数表解析
C++ 虚函数表解析 陈皓http://blog.youkuaiyun.com/haoel 前言 C++中 的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术 可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:转载 2007-12-20 09:46:00 · 462 阅读 · 0 评论 -
vs2005无法调试,断点失效,设不住断点
其实问题在于,在空项目中不生成调试文件pdb,所以无法调试。要让项目生成pdb文件,需要更改:项目属性,configuration properties->linker->Generate Debug Info 从 no 改为 yes(项目属性:属性->连接器->调试->生成连接信息 改为"是")但这样还是不够的,还需要更改:项目属性,configuration properties-转载 2007-12-25 22:03:00 · 814 阅读 · 0 评论 -
经典字符串Hash函数测试
经典字符串Hash函数测试1 概述 链表查找的时间效率为O(N),二分法为log2N,B+ Tree为log2N,但Hash链表查找的时间效率为O(1)。 设 计高效算法往往需要使用Hash链表,常数级的查找速度是任何别的算法无法比拟的,Hash链表的构造和冲突的不同实现方法对效率当然有一定的影响,然而 Hash函数是Hash链表最核心的部分,本文尝试分析一些经典软件中使用转载 2008-07-08 10:59:00 · 880 阅读 · 0 评论 -
C++中数值--字符串间的转换
编写代码时经常需要在数值(int, long, float, double ...)与字符串间的相互转换。C/C++中相关的转换方法主要有如下几种: (一)、使用CRT库中的转换函数族。_itoa, _itow 及其反转换 atoi, _wtoi_ltoa, _ltow 及其反转换 atol, _wtol_ultoa, _ultow_ecvt, _fcvt, _gcvt 及其反转换 _at转载 2008-09-19 10:06:00 · 699 阅读 · 0 评论 -
用OpenSSL编写SSL,TLS程序 - Win32版
用OpenSSL编写SSL,TLS程序 - Win32版一、简介:SSL(Secure SocketLayer)是netscape公司提出的主要用于web的安全通信标准,分为2.0版和3.0版.TLS(Transport LayerSecurity)是IETF的TLS工作组在SSL3.0基础之上提出的安全通信标准,目前版本是1.0,即RFC2246.SSL/TLS提供转载 2008-09-10 11:19:00 · 1300 阅读 · 0 评论 -
利用openssl创建一个简单的CA
本文旨在利用开源openssl软件,在Linux(或UNIX/Cygwin)下创建一个简单的CA。我们可以利用这个CA进行PKI、数字证书相关的测试。比如,在测试用Tomcat或Apache构建HTTPS双向认证时,我们可以利用自己建立的测试CA来为服务器端颁发服务器数字证书,为客户端(浏览器)生成文件形式的数字证书(可以同时利用openssl生成客户端私钥)。 该简单的CA转载 2008-09-08 18:14:00 · 873 阅读 · 0 评论 -
OpenSSL证书生成
利用OpenSSL生成库和命令程序,在生成的命令程序中包括对加/解密算法的测试,openssl程序,ca程序.利用openssl,ca可生成用于C/S模式的证书文件以及CA文件.下面以C/S模式说明证书文件的生成步骤:证书文件生成:一.服务器端 1.生成服务器端的私钥(key文件); openssl genrsa -des3 -out server.key 1024 运行时会转载 2008-09-02 12:26:00 · 2271 阅读 · 1 评论 -
TCP/IP 断开连接
四次握手: 断开连接其实从我的角度看不区分客户端和服务器端,任何一方都可以调用close(or closesocket)之类的函数开始主动终止一个连接。这里先暂时说正常情况。当调用close函数断开一个连接时,主动断开的一方发送FIN(finish报文给对方。有了之前的经验,我想你应该明白我说的FIN报文时什么东西。也就是一个设置了FIN标志位的报文段。FIN报文也可能附加用户数据,如果这一转载 2008-06-10 17:18:00 · 1597 阅读 · 0 评论 -
快速排序法qsort
快速排序法! cpro_client=sayyescpr;cpro_at=text_image; cpro_161=4; cpro_flush=1; cpro_w=336; cpro_h=280; cpro转载 2008-08-21 16:23:00 · 588 阅读 · 0 评论 -
自增减操作符探索
有一个自定义类unsignedint表示无符号型的整数, Unsignedint un1(1); Unsignedint un2(1); un1 += un2; // un1+un2,也就是一加一如果不重载+=的话将会出错,那么要使用在的话该怎么定义呢UnsignedInt& operat转载 2008-05-11 14:52:00 · 634 阅读 · 0 评论 -
函数指针调用类的成员函数
1 在每个被调用函数之前加上static, 可以使成员函数脱离对象信息单独存在,虽然它属于这个类,但是没有附带上对象信息,但是前提是,static成员函数不能使用对象的信息(成员和函数)。 2 使用一个全局函数做中转,间接调用成员函数,如下代码修改Test3:#include #include class Test3;void _cdecl Helper(Test3 *tes转载 2008-04-21 17:25:00 · 1248 阅读 · 0 评论 -
.bss段和.data段的区别
.bss段和.data段的区别bss段(未手动初始化的数据)并不给该段的数据分配空间,只是记录数据所需空间的大小。data(已手动初始化的数据)段则为数据分配空间,数据保存在目标文件中。转载 2008-04-08 13:08:00 · 567 阅读 · 0 评论 -
C/C++中的struct位结构
位结构 位结构是一种特殊的结构, 在需按位访问一个字节或字的多个位时, 位结构比按位运算符更加方便。位结构定义的一般形式为:struct位结构名{ 数据类型 变量名: 整型常数; 数据类型 变量名: 整型常数; } 位结构变量; 其中: 数据类型必须是int(unsigned或signed)。 整型常数必须是非负的整数, 范围是0~15, 表示二进制位的个数, 即表示有多少位。变量名是选择转载 2008-01-13 22:32:00 · 1639 阅读 · 0 评论 -
C/C++文件操作
在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是:1、基于C的文件操作;2、基于C++的文件操作;3、基于WINAPI的文件操作;4、基于BCB库的文件操作;5、特殊文件的操作。这次我首先写出第一篇,以后我会陆续写出其它部分在我主页中发表。壹、基于C的文件操作 在ANSI C中,对文件的操作分为两种方转载 2007-10-27 21:13:00 · 932 阅读 · 0 评论 -
memcpy memmove strcat strcopy strlen实现
1. 如何实现如下copy函数,高手指教:void memcopy(void *s,void *t, int length)/* 要求实现内存拷贝length长度内容,源为*t,目的为*s */希望大家讨论,看如何正确的实现!考虑到源地址和目的地址交叉的情况:#include #include #include //考虑到源地址和目的地址交叉的情况void * my_memcpy转载 2007-10-06 21:27:00 · 1069 阅读 · 0 评论 -
一篇关于sizeof的精辟文章
关键字:sizeof,字节对齐,多继承,虚拟继承,成员函数指针 前向声明: sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“ 辛苦我一个,幸福千万人”的伟大思想,我决定将其尽可能详细的总结一下。 但当我总结的时候才发现,这个问题既可以简单,又可以复杂,所以本文有的地方并不 适合初学者,甚至都没有必要大作文章。但如果你想“知其然,更知其所以然”的话, 那么这篇文转载 2007-09-27 13:36:00 · 493 阅读 · 0 评论 -
C 程序的外部变量与函数(extern)
摘要本文讨论了C程序的外部变量和函数的一些性质,结合实际的编程,给出了使用外部变量和函数的方法。关键字:C程序,外部变量,函数 C程序由一组对象组成,这些对象包括程序中所使用的变量和实现特定功能的函数。变量可以分为函数内部定义、使用的变量和函数外部定义的变量,通常情况下,把函数内部定义、使用的变量称为内部变量或局部变量,而将在函数外部定义的、供许多函数所使用的变量称为外部变量,一般情况下,也可以转载 2007-08-10 10:39:00 · 1059 阅读 · 0 评论 -
Linux内核驱动开发与等待队列机制实例
相信很多写程序的人都写过 socket 的程序。当我们 open 一个 socket 之后,接着去读取这个 socket,如果此时没有任何资料可供读取,那 read 就会 block 住。(这是没有加上 O_NONBLOCK 的情形),直到有资料可读取才会传回来。在 Linux kernel 里有一个数据结构可以帮助我们做到这样的功能。这个数据结构就是这里要跟各位介绍的 wait queue。在转载 2007-08-12 14:56:00 · 978 阅读 · 0 评论 -
Linux下转换字符集(UTF8转换) 借鉴此文自己已成功在LInux上实现gtk中 从UTF8到GB的转换
Linux下转换字符集(UTF8转换) 借鉴此文自己已成功在LInux上实现gtk中 从UTF8到GB的转换 在LINUX上进行编码转换时,既可以利用iconv函数族编程实现,也可以利用iconv命令来实现,只不过后者是针对文件的,即将指定文件从一种编码转换为另一种编码。一、利用iconv函数族进行编码转换iconv函数族的头文件是iconv.h,使用前需包含之。#include转载 2007-07-30 16:45:00 · 1013 阅读 · 0 评论 -
关于GtkTreeView和 MVC的一篇好文章 入木三分
关于GtkTreeView和 MVC的一篇好文章 入木三分 http://rat.nutn.edu.tw/~slayer/myarticle/gtk_tree_view_tutorial.htmlAuthor: qrtt1 2006/07/11Preface 想要使用GtkTreeView實在不是一件"簡單"的事。我在這把簡單特意括了起來,是因為要提醒您一下。我並不转载 2007-07-30 16:33:00 · 995 阅读 · 0 评论 -
你的变量究竟存储在什么地方 && 全局内存
你的变量究竟存储在什么地方?作者:杨小华 我相信大家都有过这样的经历,在面试过程中,考官通常会给你一道题目,然后问你某个变量存储在什么地方,在内存中是如何存储的等等一系列问题。不仅仅是在面试中,学校里面的考试也会碰到同样的问题。 如果你还不知道答案,请接着往下看。接下来,我们将在Linux操作系统上,以GCC编译器为例来讲解变量的存储。 在计算机系统中,目标文件通常有三种形式:转载 2007-07-27 10:30:00 · 1442 阅读 · 0 评论 -
摄像头编程
摄像头编程 using System;using System.Runtime.InteropServices;namespace webcam...{ /**//**/ /**//// /// avicap 的摘要说明。 /// public class showVideo ...{ // showVideo calls转载 2007-04-17 12:34:00 · 1074 阅读 · 0 评论 -
大内高手—惯用手法
转载时请注明出处:http://blog.youkuaiyun.com/absurd/ 《POSA》中根据模式粒度把模式分为三类:架构模式、设计模式和惯用手法。其中把分层模式、管道过滤器和微内核模式等归为架构模式,把代理模式、命令模式和出版-订阅模式等归为设计模式,而把引用计数等归为惯用手法。这三类模式间的界限比较模糊,在特定的情况,有的设计模式可以作为架构模式来用,有的把架构模式也作为设计模转载 2006-08-24 08:34:00 · 879 阅读 · 0 评论 -
常用正则表达式收集&勘误
正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。匹配中文字符的正则表达式: [/u4e00-/u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^/x00-/xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)匹配空白行的正则表达式:/n/s*/r评注:可以转载 2006-12-11 18:09:00 · 1181 阅读 · 0 评论 -
C语言高效编程的四大绝招
C语言高效编程的四大绝招 编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就是针对编程工作中的一些体会和经验做相关的阐述。 第一招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值: 方法A:通常的办法转载 2006-09-24 13:27:00 · 985 阅读 · 0 评论 -
C++高效程序设计
C++高效程序设计作者:Joris Timmermans译者:Xu Leasun(2003.04.02)(本译文的翻译已获得原作者授权,本译文的版权归雪川原所有,转载请与雪川联系)(本译文首次发表于《程序员》杂志2003年1月刊,感谢《程序员》杂志)摘要不管是否愿意承认,每个人都希望程序的运行速度越快越好。每天人们都你追我赶,好像明天就是末日。而同时,公关部的那些家伙则不停的吼叫着,说他们转载 2006-09-24 13:20:00 · 650 阅读 · 0 评论 -
C/C++ 程序设计员应聘常见面试试题深入剖析
C/C++ 程序设计员应聘常见面试试题深入剖析 1.引言 本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。 许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程 度,我们能真正写好一个strcp转载 2006-09-19 13:28:00 · 750 阅读 · 0 评论 -
GTK+ FAQ
GTK+ FAQ Tony GaleShawn AmundsonEmmanuel Deloget总说明 April 30th 2003转载 2007-08-11 16:44:00 · 3401 阅读 · 0 评论 -
深入浅出 Linux设备驱动中断处理介绍
深入浅出 Linux设备驱动中断处理介绍 与Linux设备驱动中中断处理相关的首先是申请与释放IRQ的API: request_irq()和free_irq()。 request_irq()的原型为: int reques转载 2007-08-12 15:03:00 · 1101 阅读 · 0 评论