- 博客(35)
- 收藏
- 关注
转载 关于Unix网络编程源码安装的Tips
http://www.kohala.com/start/unpv12e.html 下载源码解压到目录unpv12e#cd unpv12e#cd lib#makegcc -g -O2 -D_REENTRANT -Wall -c -o connect_nonb.o connect_nonb.cIn file included from connect_nonb.c:1:unp.h:114: r
2008-05-27 23:07:00
469
原创 C语言关于main函数(转)
C的设计原则是把函数作为程序的构成模块。main()函数称之为主函数,一个C程序总是从main()函数开始执行的。一、main()函数的形式 在最新的 C99 标准中,只有以下两种定义方式是正确的: int main( void )--无参数形式 { ... return 0;
2008-04-22 23:00:00
545
原创 不那么随机的随机数列
不那么随机的随机数列曾经看过这样一种赌徒的策略:假设在一场赌大小的赌博游戏中,赔率是 1:1 ,而庄家不会出千,开大和开小的概率均等(皆为 50%)。赌徒一开始压一块钱,如果他压错了,那么下一次就压两块,再错继续加倍。一旦压对,赌徒永远可以保证有一块钱的进帐。并且从 1 块钱重新开始。看起来,这种策略能保证永远包赚不赔。但实际上为什么没有人用这个方案发财呢?放到现实中,试图采用
2008-04-22 00:04:00
487
1
原创 ls 只显示目录
ls -d 不行!测试 “ls *” 和 “ls -d *” 就可以看出明显的区别。只显示目录名ls -l | grep ^d只显示文件ls -l | grep ^- 只显示文件名ls -l | grep ^f 统计当能目录下的文件数ls -l | grep ^- | wc -l cd .. 返回上级目录cd ../.. 进入上二级目录cd - 返回上一次
2008-04-10 13:13:00
3404
原创 写一个函数将一个DWORD类型,2进制,位数为1的个数返回出来?
#includeint main(){ int x=111; int i=0; while(x) { x &= x-1; ++i; } cout return 0;}说明:不管二进制是什么,减1就会从右到左把0变为1,直至碰见1,把1变为0才结束. 如果x=x&(x-1),就是把从左到右0和第一个1变为0!举例:1001
2008-02-27 20:41:00
416
原创 c语言socket编程指南
介绍 Socket 编程让你沮丧吗?从man pages中很难得到有用的信息吗?你想跟上时代去编Internet相关的程序,但是为你在调用 connect() 前的bind() 的结构而不知所措?等等… 好在我已经将这些事完成了,我将和所有人共享我的知识了。如果你了解 C 语言并想穿过网络编程的沼泽,那么你来对地方了。 --------------------------------
2008-02-26 19:15:00
20579
18
原创 C代码优化方案
C代码优化方案 华中科技大学计算机学院 姓名: 王全明 QQ: 375288012 Email: quanming1119@163.com 目录目录__ 2 C代码优化方案__ 4 1、选择合适的算法和数据结构__ 4 2、使用尽量小的数据类型__
2008-02-25 22:36:00
898
原创 结构体对齐
struct name{ char c; /1 short s; /2 int i; /4 long l; /4 float f; /4 double d; /8 long double ld; /12};na
2008-02-25 20:29:00
303
原创 MD5的C实现
假期中闲来无事,写了以下一段代码,还望高手们给出改进意见。#include#include#include#include//循环左移n位int cir_left(int source,int n){ unsigned int tmp = source; return (tmp > (32-n));}//transfer char array[] to int array[]void
2008-02-24 00:52:00
678
原创 彻底搞定C指针-指向另一指针的指针
彻底搞定C指针-指向另一指针的指针 一. 回顾指针概念:早在本系列第二篇中我就对指针的实质进行了阐述。今天我们又要学习一个叫做指向另一指针地址的指针。让我们先回顾一下指针的概念吧!当我们程序如下申明变量:short int i;char a;short int * pi;程序会在内存某地址空间上为各变量开辟空间,如下图所示。内存地址→6 7 8
2008-02-22 12:22:00
209
原创 C语言端序
C语言端序Endianism,端序,是指用来存储数据的方法,它定义了数据类型对字节进行寻址的方式。两种端序方式:1、Little-endian,小端序,是将低位字节存储在内存偏移地址较低的地址中,将高位字节存储在内存偏移地址较高的地址中;2、Big-endian,大端序,则是将低位字节存储在内存偏移地址较高的地址中,将高位字节存储在内存偏移地址较低的地址中。比如:0x12345678 在 bi
2008-02-21 23:58:00
240
转载 C/C++ 程序设计员应聘常见面试试题深入剖析
1.引言 本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。 许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strc
2008-02-19 18:24:00
208
转载 Socket编程指南及示例程序
1 前言在一些常用的编程技术中,Socket网络编程可以说是最简单的一种。而且Socket编程需要的基础知识很少,适合初学者学习网络编程。目前支持网络传输的技术、语言和工具繁多,但是大部分都是基于Socket开发的,虽说这些“高级”的网络技术屏蔽了大部分底层实现,号称能极大程度的简化开发,而事实上如果你没有一点Socket基础,要理解和应用这些技术还是很困难的,而且会让你成为“
2008-02-18 23:29:00
491
1
原创 这个函数比普通的(float)(1.0/sqrt(x)快4倍!
从这里看来的。QuakeIII自然就是传奇高手卡马克的杰作之一了。在有的CPU上,这个函数比普通的(float)(1.0/sqrt(x)快4倍!快的原因之一是用了一个神秘常数,0x5f3759df。普渡大学的Chris Lomont讨论了这个常数的意义,尝试用严格的方法推导出这个常数(他还提到有人认为这个函数是在NVidia工作过的Gary Tarolli写的)。Chris推出的常数是0x
2007-08-13 13:10:00
501
转载 内存管理 (2)
7.7 杜绝“野指针”“野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。 “野指针”的成因主要有两种:(1)指针变量没有被初始化。任何指针变量刚被创建
2006-12-09 20:23:00
594
转载 内存管理 (1)
内存管理欢迎进入内存这片雷区。伟大的Bill Gates 曾经失言:640K ought to be enough for everybody — Bill Gates 1981程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本章的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。7.1内存分
2006-12-09 20:14:00
457
转载 C语言中的指针和内存泄漏
在使用 C 语言时,您是否对花时间调试指针和内存泄漏问题感到厌倦?如果是这样,那么本文就适合您。您将了解可能导致内存破坏的指针操作类型,您还将研究一些场景,了解要在使用动态内存分配时考虑什么问题。引言 对于任何使用 C 语言的人,如果问他们 C 语言的最大烦恼是什么,其中许多人可能会回答说是指针和内存泄漏。这些的确是消耗了开发人员大多数调试时间的事项。指针和内存泄漏对某些开发人员来
2006-12-09 17:18:00
1027
1
转载 呵呵,今天在网上发现一个更全,更详细的讲解《堆和栈的区别》,于是抄袭了下来
一直就搞不清出这个问题,今天上网想起来,随即搜了搜,找到了一些资料。不知源作者是谁。姑且“拿来主义”一下,呵呵。一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能
2006-12-08 19:24:00
713
原创 函数调用的详细汇编及调试说明和解析多线程
通过堆栈调用解析多线程 首先说明一下,堆是进程的全局数据内存存储区,栈是函数的局部数据内存存储区。由于大多数书籍在介绍堆或栈时,皆以堆栈泛指,因此,题目标题亦如此表述,希望读者不要混淆就是了。 要想编写出高性能的气象应用软件,多线程的使用是不可或缺的;要想全面深入理解多线程,必须对栈有十分清楚的理解。个人感觉在Windows编程中,栈的概念犹如C/C++中的指针,非常重要,但难于
2006-12-08 17:53:00
1113
转载 深度理解按位异或运算符
4.按位异或运算符^ 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即: 0^0=0, 1^0=1, 0^1=1, 1^1=0 例如: 10100001^00010001=10110000 0^0=0,0^1=1 0异或任何数=任何数
2006-12-07 22:19:00
1055
原创 对于C++中:this指针的理解
先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。(虽然比int char这样build-in类型复杂的多,但首先要理解它们一样是类型)。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针。如
2006-12-07 18:58:00
2531
1
转载 是 栈 和 堆的区别(描述了C中在内存中的形式,调试代码很有用)
关键是 栈 和 堆的区别:堆和栈的区别一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3
2006-12-06 21:05:00
1209
原创 怎样产生尽可能不会重复的随机数?((产生的 随机数的个数 可能几百万个,甚至更多)
1: 把你最终需要的结果(不重复的数)预先放在一个数组中, 因为rand函数产生的随机数会重复,我们不直接用,而是用来对应数组的下标2: rand产生一个随机下标,我们就取出对应数组中的值(我们真正需要的随机数)3: 然后用数组最后一个值来替换该下标数组中的值4: 将产生随机下标的范围减少一5: goto 2注: 3中所谓数组最后一个值是指产生随机下标范围内的最后一个. 如产生随机下标0
2006-12-06 19:44:00
559
原创 C,C++经典问题,及面试笔试题
1 编程基础1.1 基本概念1. 的理解:const char*, char const*, char*const的区别问题几乎是C++面试中每次 都会有的题目。 事实上这个概念谁都有只是三种声明方式非常相似很容易记混。 Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。 co
2006-12-06 15:12:00
1565
原创 链表几种常用操作回顾
//***********************************//** 链表各种操作回顾 ** //***********************************#include //------------------------------------------------------------------------------//***
2006-12-05 20:28:00
428
原创 深入浅出硬盘分区表(ZT)
深入浅出硬盘分区表(ZT)人们在使用电脑时,有时由于异常操作,有时由于病毒侵袭,会导致某个分区消失或硬盘无法启动。究其原因,就是硬盘分区表受损。硬盘分区表可以说是支持硬盘正常工作的骨架.操作系统正是通过它把硬盘划分为若干个分区,然后再在每个分区里面创建文件系统,写入数据文件.本文主要讲述的是分区表的位置,结构以及各个分区表是如何链接起来的.当掌握了这些知识后,即使分区表受到破坏,一样也可以根据
2006-12-04 15:17:00
551
转载 读《想成为嵌入式程序员应知道的0x10个基本问题》读书笔记!!
自己知道理解不够深刻以及一点也不知道的地方,以后还要仔仔细细的阅读:一。注意处理器的位数关系到数据长度益出的问题用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是
2006-12-03 23:53:00
498
转载 想成为嵌入式程序员应知道的0x10个基本问题
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要
2006-12-03 23:30:00
353
原创 轻松面试找到理想员工-非官方的面试技术指南
轻松面试找到理想员工-非官方的面试技术指南简述:本文作者Joel Spolsky 是纽约市一家软件公司Fog Creek Software的创始人。他毕业于耶鲁大学,曾分别在美国微软、Viacom、Juno等公司任软件设计师、经理职位。本文来自于《祖儿谈软件》,文章原名为《轻松面试找到理想员工——非官方的面试技术指南》,作者最初本意是针?/p>首 页 > 嵌入式开发 > 语言与
2006-12-03 23:29:00
363
原创 究竟什么是MVC?
模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用 ColdFusion 和 PHP 的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。MVC如
2006-12-03 19:26:00
434
原创 Windows Vista的秘密1: 在按下Shift键的同时,右击Windows Vista系统中的任何文件夹,打开命令行
这里有一个我认为鲜为人知的技巧。在按下Shift键的同时,右击Windows Vista系统中的任何文件夹,你会发现一个额外的上下文菜单项:在这里打开命令行(Open Command Prompt Here),点击该菜单项,会打开一个命令行窗口,其当前工作路径就是目录的实际位置。 另外这一功能有一个很酷的地方:如果目标文件夹是一个网络位置,在打开文件夹前,Windows Vista会悄悄地将该文件
2006-12-03 14:36:00
450
转载 配置Eclpise+tomcat与实现JSP部署
一.下载 J2SDK下载 http://java.sun.com/j2se/1.4.2/download.html 下载版本是j2sdk-1_4_2_08 ECLIPSE下载 http://www.eclipse.org/downloads/index.php 下载版本是eclipse-SDK-3.0.2-win32 ECLIPSE 插件下载 中文包: http:
2006-12-02 18:07:00
434
原创 Eclipse学习笔记
一。在Eclipse中安装插件,汉化包的时候,最好在Eclipse目录-configuration目录-config.ini文件中第一行加入:osgi.Checkconfiguration=true,这样Eclipse启动时自动检查插件和语言包 。注意:config.ini文件用记事本编辑不行,最好用Editplus工具编辑 二。在安装Tomcat插件的时候,如果Ecli
2006-12-02 17:24:00
404
原创 C,猜数字
这个程序是在大三,还是大二写的自己都记不清了,现在翻出来看的时候,晕,怎么自己写的有些地方自己都看不懂啊!!唉!!看来要重操旧刀,给好好的复习复习了!!在大学的时候还用汇编写过一个DOS内存驻留,中断钩子的,不知道跑那去了,那天翻到了在贴上来吧!!//猜数字V1.0/*输入四个不重复的数字,按回车键后结果显示在右边方框,其形式为"?A?B".四位数字中,位置和数字都正确为A,数字相
2006-12-01 15:59:00
485
原创 SQL for Mysql
SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybas
2006-12-01 15:43:00
1020
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人