自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (6)
  • 收藏
  • 关注

转载 struct sockaddr_in和struct sockaddr有什么区别

 

2007-09-17 21:40:00 603 1

原创 深入理解C语言指针的奥秘

指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。   先声明几个指针放着做例子:   例一:   (1)int*ptr;   (2)char*ptr;   (3)int**ptr;   (4)int(*ptr)[3];   (5

2007-05-15 20:36:00 596

原创 关于大数的阶乘与确定阶乘结果的位数

第一个问题: 大数的阶乘第二问题:确定大数阶乘的位数 有公式: 0<=log(n!)-(log(sqrt(2nPi))+nlog(n)-nlog(e))<=log(e)/(12*n) 

2007-04-20 18:10:00 964

原创 关于大数相乘

        这学期的算法课上我们学习了一点关于大数相乘的算法。今天在网上搜了一下, 看了好多,觉得大多数人用数组来存储中间和最终数据,而且是一开始就直接相乘两个数,没有用到相关的算法。       在这里先提出自己的思路:     1 将两个乘数保存在数组中。     2 利用分治的思想划分两个数,递归调用。     3 重复2,直到数字可以直接相乘位置。然后归并。   现

2007-04-20 17:47:00 857

原创 关于缓冲区溢出的尝试

源代码如下:/* Bomb program that is solved using a buffer overflow attack */#include #include #include /* Like gets, except that characters are typed as pairs of hex digits.   Nondigit characters are

2007-03-04 11:55:00 729

转载 C# 2.0中泛型编程思想分析

 在2005年底微软公司正式发布了C# 2.0,与C# 1.x相比,新版本增加了很多新特性,其中最重要的是对泛型的支持。通过泛型,我们可以定义类型安全的数据结构,而无需使用实际的数据类型。这能显著提高性能并得到更高质量的代码。泛型并不是什么新鲜的东西,他在功能上类似于C++的模板,模板多年前就已存在C++上了,并且在C++上有大量成熟应用。  本文讨论泛型使用的一般问题,比如为什么要使用泛型、

2006-12-18 13:08:00 738

转载 C语言的底层操作

 C语言的内存模型基本上对应了现在von Neumann(冯·诺伊曼)计算机的实际存储模型,很好的达到了对机器的映射,这是C/C++适合做底层开发的主要原因,另外,C语言适合做底层开发还有另外一个原因,那就是C语言对底层操作做了很多的的支持,提供了很多比较底层的功能。  下面结合问题分别进行阐述。  问题:移位操作  在运用移位操作符时,有两个问题必须要清楚:  (1)、在右移操作中,腾空位是填

2006-07-01 04:04:00 1173

转载 水滴石穿C语言之C语言的底层操作

 C语言的内存模型基本上对应了现在von Neumann(冯·诺伊曼)计算机的实际存储模型,很好的达到了对机器的映射,这是C/C++适合做底层开发的主要原因,另外,C语言适合做底层开发还有另外一个原因,那就是C语言对底层操作做了很多的的支持,提供了很多比较底层的功能。  下面结合问题分别进行阐述。  问题:移位操作  在运用移位操作符时,有两个问题必须要清楚:  (1)、在右移操作中,腾空位是填

2006-07-01 04:03:00 891

转载 水滴石穿C语言之编译器引出的问题

本节主要探讨C编译器下面两方面的特点所引发的一系列常见的编程问题。 对C文件进行分别编译:C程序通常由几个小程序(.c文件)组成,编译器将这几个小程序分别编译,然后通过链接程序将它们组合在一起形成一个目标代码。由于编译器每次只能编译一个文件,因此它不能立即检查需要几个源文件配合才能发现的错误。 对函数的参数和返回值建立临时变量C编译器会对函数的参数建立临时参数,

2006-07-01 04:01:00 687

转载 水滴石穿C语言之指针、数组和函数

基本解释  1、指针的本质是一个与地址相关的复合类型,它的值是数据存放的位置(地址);数组的本质则是一系列的变量。  2、数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。  3、当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。   问题:指针与数组  听说

2006-07-01 04:00:00 760

转载 C++类型中的转换--static_cast 和 reinterpret_cast

C++类型中的转换--static_cast 和 reinterpret_cast 人气:35343 STATIC_CAST VERSUS REINTERPRET_CAST sta

2006-07-01 03:59:00 825

转载 水滴石穿C语言之指针综合谈

Joel Spolsky认为,对指针的理解是一种aptitude,不是通过训练就可以达到的。虽然如此,我还是想谈一谈这个C/C++语言中最强劲也是最容易出错的要素。  鉴于指针和目前计算机内存结构的关联,很多C语言比较本质的特点都孕育在其中,因此,本篇和第六、第七两篇我都将以指针为主线,结合在实际编程中遇到的问题,来详细谈谈关于指针的几个重要方面。  指针类型的本质分析  1、指针的本质  指针的

2006-07-01 03:58:00 787

转载 水滴石穿C语言之声明的语法

概述   在很多情况下,尤其是读别人所写代码的时候,对C语言声明的理解能力变得非常重要,而C语言本身的凝练简约也使得C语言的声明常常会令人感到非常困惑,因此,在这里我用一篇的内容来集中阐述一下这个问题。  问题:声明与函数   有一段程序存储在起始地址为0的一段内存上,如果我们想要调用这段程序,请问该如何去做?   答案  答案是(*(void (*)( ) )0)( )。看起来确实令人头大,那好

2006-07-01 03:57:00 671

转载 水滴石穿C语言之内存使用

有人写了一个将整数转换为字符串的函数: char *itoa (int n){ char retbuf[20]; sprintf(retbuf, "%d", n); return retbuf;}   如果我调用这个函数:char *str5 = itoa(5),str5会是什么结果呢?  

2006-07-01 03:56:00 690

转载 水滴石穿C语言之可变参数问题

C语言中有一种长度不确定的参数,形如:"…",它主要用在参数个数不确定的函数中,我们最容易想到的例子是printf函数。   原型:   int printf( const char *format [, argument]... );   使用例:   printf("Enjoy yourself everyday!/n");   printf("The value is %d!/n", val

2006-07-01 03:54:00 741

转载 水滴石穿C语言之typedef的问题

1. 基本解释  typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。  在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。  至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。2. typedef &am

2006-07-01 03:52:00 682

转载 一个跨平台的 C++ 内存泄漏检测器

内存泄漏对于C/C++程序员来说也可以算作是个永恒的话题了吧。在Windows下,MFC的一个很有用的功能就是能在程序运行结束时报告是否发生了内存泄漏。在Linux下,相对来说就没有那么容易使用的解决方案了:像mpatrol之类的现有工具,易用性、附加开销和性能都不是很理想。本文实现一个极易于使用、跨平台的C++内存泄漏检测器。并对相关的技术问题作一下探讨。基本使用对于下面这样的一个简

2006-07-01 03:51:00 662

转载 浅谈内存泄漏

检测内存泄漏: 检测内存泄漏的关键是要能截获住对分配内存和释放内存的函数的调用。截获住这两个函数,我们就能跟踪每一块内存的生命周期,比如,每当成功的分配一块内存后,就把它的指针加入一个全局的list中;每当释放一块内存,再把它的指针从list中删除。这样,当程序结束的时候,list中剩余的指针就是指向那些没有被释放的内存。这里只是简单的描述了检测内存泄漏的基本原理,详细的算法可以参见Steve M

2006-07-01 03:48:00 602

转载 win32消息框

理论:Windows 为编写应用程序提供了大量的资源。其中最重要的是Windows API (Application Programming Interface)。 Windows API是一大组功能强大的函数,它们本身驻扎在 Windows 中供人们随时调用。这些函数的大部分被包含在几个动态链接库(DLL)中,譬如:kernel32.dll、 user32.dll 和 gdi32.dll。

2006-07-01 03:47:00 798

原创 iostream.h 和 iostream的区别

条款2:尽量用而不用         是的,scanf和printf很轻巧,很高效,你也早就知道怎么用它们,这我承认。但尽管他们很有用,事实上scanf和printf及其系列还可以做些改进。尤其是,他们不是类型安全的,而且没有扩展性。因为类型安全和扩展性是C++的基石,所以你也要服从这一点。另外,scanf/printf系列函数把要读写的变量和控制读写格式的信息分开来,就象古老的FORTRAN那样

2006-07-01 03:45:00 1019

转载 深入了解C语言

C语言生成的代码在执行效率上比其它高级语言都高.现在让我们来看看C语言生成的代码具体是什么样子的.当你看完本文对于C语言的了解一定会更深一步了.本文通过一个个实际案例程序来讲解C语言.研究案例一工具: Turboc C v2.0,Debug,MASM v5.0,NASM实例C程序:/* example1.c */char ch;int e_main(){e_putchar(ch);}目标内容:C语

2006-07-01 03:42:00 747

转载 C++中extern “C”含义深层探索

1.引言C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。2.

2006-07-01 03:40:00 568

原创 C++的底层机制

    c++为我们所提供的各种存取控制仅仅是在编译阶段给我们的限制,也就是说是编译器确保了你在完成任务之前的正确行为,如果你的行为不正确,那么你休想构造出任何可执行程序来。 但如果真正到了产生可执行代码阶段,无论是c,c++,还是pascal,大家都一样,

2006-07-01 03:39:00 1211 1

转载 C++代码优化方法

【导读】本文对C++ 代码优化进行了多种方法的介绍

2006-07-01 03:38:00 962 1

转载 MFC消息响应机制分析

 一.引言VC++的MFC类库实际上是Windows下C++编程的一套最为流行的类库。MFC的框架结构大大方便了程序员的编程工作,但是为了更加有效、灵活的使用MFC编程,了解MFC的体系结构往往可以使编程工作事半功倍。它合理的封装了WIN32 API函数,并设计了一套方便的消息映射机制。但这套机制本身比较庞大和复杂,对它的分析和了解无疑有助于我们写出更为合理的高效的程序。这里我们简单的

2006-07-01 03:36:00 840 1

转载 内存二

 五大内存分区 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。    栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。    堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束

2006-07-01 03:35:00 632 1

转载 堆和栈的区别

堆和栈的区别一、预备知识?程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)  由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)   一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)

2006-07-01 03:32:00 608

WinZip 19.5 注册码生成器

WinZip 19.5 注册码生成器

2016-07-30

DTCMS 源代码

一个开源的CMS源代码,三层架构,ASP.NET(C#)2.0+jQuery技术为中心。

2012-12-02

Dissecting a Csharp Application Inside SharpDevelop

一个全面介绍SharpDevelop如何开发的书,压缩文件中包含了中文和英文两个版本。这本书值得大家去阅读从而了解如何实现一个IDE。

2012-06-05

浙大 ACM 题集

浙大ACM题集,总共包含2636道题目。

2012-05-25

Application Architecture Guide

这是一本介绍如何运用.Net构建企业级架构的书。

2012-05-11

重构手册 Professional Refactoring Workbook

这本书主要讲解如何对软件进行重构,在书中根据不同的类别进行详细说明。

2009-02-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除