
语言细节
文章平均质量分 58
kofsky
Welcome
展开
-
C++中的static
C++的static有三个意思。1. 作为类的数据成员或者成员函数的限定符。 这跟JAVA中static中的意义是一致的。 2.把一个全局变量或一个函数的作用域限制在定义它们的文件之内。 用static关键字进行声明的全局标识符具有internal链接属性,也就是说它不能用extern声明链接到其他文件。 3.局部变量在函数内部的存储持续时间 若一个局部原创 2008-04-30 15:26:00 · 529 阅读 · 0 评论 -
被两个变态问题整的焦头烂额
文件传输 程序运行的流程为:其他进程将创建文件传输任务的信息写入文件,FTP程序读取文件,解析,然后创建任务,开启线程完成FTP工作。我老人家每次测试的时候,同时发送个三五个文件,并行跑十来个任务,跑几个钟头,要是没出问题,OK,心满意足,工作圆满结束。把FTP交付给老板后,今天跟我有个bug,说同时发送几百个文件的时候,程序就会出现内存错误。听到后马上心里感觉有些不踏实,因为没有测试过原创 2008-05-26 21:01:00 · 794 阅读 · 0 评论 -
精致的C Code
/* strlen: return length of s */ int strlen(char s[]) { int i; while (s[i] != /0) ++i; return i; } /* strlen: return length of stri原创 2008-08-24 09:38:00 · 893 阅读 · 0 评论 -
三个字!基本功!
我靠,本以为初赛是没有问题的!花花脑子想一想,最笨的也是遍历穷举下,咋可能做不出来嘛!!结果!今天,这个惨不忍睹!自己都受不了了!一个建索引然后查找的小程序,居然花了一二十分钟来调试一个小bug!!16进制转10进制居然转反了!!位操作完全不熟悉!!太他妈磋了! 完全无语! 7月底over实习!看书啦!做个球项目!一边去! 苦练内功!再不练练练就只有挥原创 2008-06-01 18:13:00 · 1174 阅读 · 0 评论 -
C语言的指针
1. 指针指针包括两个方面的内容:指针指向的对象,即指针变量的值,也就是数据对象存放的地址指针的类型,指针的类型决定了该怎么去解释其指向的对象区域,同一片内存区域,按照不同的解释,其意义是完全不同指针本身也是一个对象,也占据内存空间。 这是 The C Programming Language 里面的示意图,c is a char and p原创 2008-08-26 22:26:00 · 816 阅读 · 0 评论 -
TCP数据流传输遇到的问题
通过socket传输数据的时候遇到问题。模式:一服务器对多客户端;遇到的问题刚开始感觉有点奇怪,有时正确有时又出错,而且出错的场合也不可捉摸,大致测试了下,猜测过如下可能性:先是感觉群发可以,单点发送不行后来发现是有线网可以,无线网不行再发现是大数据不行,小数据包可以最后记录在发送端和接收端 数据传输的报文,发现问题是:在接收端时,TCP数据读取不完全时,就开始解析了,导致协议原创 2008-06-05 16:41:00 · 3081 阅读 · 1 评论 -
正视差距,努力学习
最近参加了两次竞赛,一次百度之星,一次TopCoder西部挑战赛,皆惨败而归。百度之星两场都参加了。第一场提交了三题,费事最长,且信心最足的第2题只通过了三四个测试点,几乎等于没有等分,与预期落差太大;第二场首先做第一个,信心满满,先建索引,再通过索引查询,还做了些临时存储来优化内存效率,结果考虑太多,耗时太长,总共竟花了一个半小时,提交后只剩两个小时了,思考了一下,决定放弃第2,3题,直原创 2008-06-08 19:16:00 · 1034 阅读 · 0 评论 -
杀怪升级
一 近期已解决bug 1. FTP随机出现的内存错误:access violation 原因:采用的是分离线程,循环完毕后自动释放线程资源;而此时,其他线程仍然尝试访问该线程的资源,发生冲突 解决:a.共享资源全部加锁访问(注意死锁啊) b.FTP进行数据传输之前进行TCP的连接测试,连接成功则传输,失败则中止线程(这个是关键问题啊,可是我还是没有找到发生原创 2008-06-17 10:02:00 · 1078 阅读 · 0 评论 -
程序员经验分享(转)
“又是一年毕业时”,看到一批批学子离开人生的象牙塔,走上各自的工作岗位;想想自己也曾经意气风发、踌躇满志,不觉感叹万千……本文是自己工作6年的经历沉淀或者经验提炼,希望对所有的软件工程师们有所帮助,早日实现自己的人生目标。本文主要是关于软件开发人员如何提高自己的软件专业技术方面的具体建议,前面几点旨在确定大的方向,算是废话吧。谨以此文献给那个自己为你奉献3年青春与激情的开发团队。还有团队成员:PP原创 2008-05-22 10:05:00 · 2725 阅读 · 0 评论 -
理解冲突:模块设计
当把我设计的服务器中心模块转交给他人时,让我意外的事情发生了,他们都不是很理解我的设计。1.认为我的类太多,模块划分得太细2.不是很容易了解整个流程,因为在逻辑上两个顺序执行的功能单位相差十万八千里刚开始,我很难理解他们的想法,很难想象,就是这样一个简单的设计,竟如此的难以理解么?但当我们交流了一下后,我慢慢发现,我和他们的很多思想都存在很大的不同。1.我目标是建立一个可扩展性强的框架原创 2008-05-22 09:42:00 · 747 阅读 · 0 评论 -
系统架构师是怎样炼成的?
“在我工作的六年多时间里,除了第一年是纯粹编码以外,其余时间都在做和架构设计有关的工作,当然也还一直在写各种各样的代码。”张友邦认为架构设计可能看起来很神秘,新入门或没有架构设计经验的程序员刚开始的时候会有种不知所措的感觉,但其实架构设计是件很容易的事,它只是软件系统开发中的一个环节而已,整个软件系统的开发和维护以及变更还涉及到很多事情,包括技术、团队、沟通、市场、环境等等。同时,张友邦表转载 2008-04-25 13:20:00 · 700 阅读 · 0 评论 -
遇到几个问题
1. 指针问题(好难描述这个问题了)如下一段代码: (A)AdsPlayList playList;// 这个类中有一个 std::vector 对象,存放一系列的指针 (A)playList.load( filename ); // 构建 std::vector (A)std::vector vlist = playList.getVideoPlayList();// 从中取出原创 2008-04-28 16:53:00 · 589 阅读 · 0 评论 -
简短的理解设计模式
Adapter:to provide the interface that a client expects while using the services of a class with a different interface.接口的转换, 将一个类的接口转换成客户希望的另外一个接口。Java中的WindowAdapter,就是这个,熟悉吧。Facade:to provide a原创 2008-05-04 16:12:00 · 738 阅读 · 0 评论 -
一个搜索问题的求解
这是一个模拟竞赛的题目中的一部分。大二下,或是大三上的时候做的,具体时间已经记得不太清楚了。期间提出的一个启发式算法极大的提高了一个搜索的效率,尤为有成就感。即使到现在,在算法方面,也很少有这种拉风的感觉。贴过来,体验一下这种拉风的感觉。嘿嘿。(这个竞赛是和老典和YB一起做的,里面自然有许多许多他们的劳动成果,呵呵,非常的感谢他们,说真的,合作非常的愉快,让我到今天都还记得这种纯粹的快乐原创 2008-05-06 15:24:00 · 1239 阅读 · 2 评论 -
Matlab2008a:惊喜
今天跑去实验室一看,周围用matlab的版本都换成2008a了。刘师兄问了我几个matlab是否支持OO与命令空间,俺以前也没碰过。回寝室查了下最新的版本,看了下新增的特性,最感兴趣的是下面三个特性: New classdef keyword enabling you to define properties, methods, and events in a class de原创 2008-05-06 22:20:00 · 1873 阅读 · 0 评论 -
几个程序员面试题
开锁:在一条长长的走廊上一次排列着100把锁着的锁头,你从把这100把锁全部打开开始(第一遍)。然后,你把所有序号是2的倍数的锁头再锁上(第2遍)。接下来,你依次找到所有序号是3的倍数的锁头前,如果它是打开的,就把它锁上,如果它是锁上的,就把它打开——我们把这称为“切换锁的状态”(第3遍)。即继续拿这样在第n遍去切换所有序号是n的倍数的锁头的状态。当进行到第100遍时,你将只切换第100把锁头的状原创 2008-05-07 20:15:00 · 1412 阅读 · 0 评论 -
'char **' 和 'const char **'的兼容性问题
有时候必须非常专注的阅读ANSI C 标准才能找到某个问题的答案。一位销售工程师把下面的代码作为测试例子发给SUN的编译器小组。#include void foo( const char **P ){} int main( int argc, char **argv ){ foo( argv );return 0;} 在VC转载 2008-07-19 14:00:00 · 1256 阅读 · 0 评论 -
函数指针
>--“ 理解函数声明 ” 有一次,一个程序员与我交谈一个问题。他当时正在编写一个独立运行于某种微处理器上的c程序。当计算机启动时,硬件将调用首地址为0位置的子例程。为了模拟开机启动时的情形,我们必须设计出个c语句,以显式调用该于例程。经过一段时间的思考,我们最后得到的语句如下:(*(void(*)())0)();像这样的表达式恐怕会令每个c程序员的内心都“不寒而栗”。然而,他们大转载 2008-07-19 14:20:00 · 565 阅读 · 1 评论 -
c++串的浅拷贝
1、C++的std::string浅拷贝这是帮朋友调适出来的一个错误,隐藏得很深,有些诡异。全局指针 char* filename;某函数中出现:function A(){ std::string file = ;// 此处从其他地方获得文件名 filename = file.c_str(); // 将文件名复制后,然后到其他地方使用 // 这原创 2008-05-11 10:27:00 · 1380 阅读 · 0 评论 -
这个只有两行的C程序至少有80%的人会判断错,不信的就进来!
第一个 #include;void main(){ char *ptr = "csdn"; printf( "%c/n",*(ptr++) );}第二个 #include;void main(){ int i = 10; i << 1; i >> 5; printf( "%d/n", i);}结果是转载 2008-06-19 10:41:00 · 780 阅读 · 0 评论 -
字节序
这是linux对IP头的定义 /usr/include/linux/ip.h 或 linux/include/linux/ip.h) struct iphdr { #if __BYTE_ORDER == __LITTLE_ENDIAN uint8_t ihl:4, version:4; #elif __BYTE_ORDER == __BIG_ENDIAN u转载 2008-09-09 16:43:00 · 1057 阅读 · 0 评论 -
C++两个小技巧
从新新那里学来的,记录一下,感觉还挺不错,哈哈一。灵活的在注释与代码间转换注释风格:/*code here//*/ 代码风格://*code here//*/ 看一下两者之间,相差什么呢?只差一个斜杠/,也就是说,只要删一个斜杠,就可以把中间这段代码注释掉,增加一个斜杠,就可以使中间这段代码有效。在写一些测试代码时会比较有用。原创 2008-06-25 14:52:00 · 922 阅读 · 0 评论 -
第一次面试经历
首先介绍了一下公司,然后让我自己介绍了一下。我介绍的比较简单。就说最大的优点在于做事比较认真,如果我想做一个事情,我会在我能力范围内把它做得最好。然后就没说什么了。随即转入正题。1、问:你遇到最大的难题是什么?回答:大学好像没有。高中倒有一次。问:可以讲一讲么?回答:就是和一群混混搞在一起,一起到处玩,不务正业。以前高一考过全校第一,后来成绩一直掉,一直掉,掉到快一百名了。高二几乎玩了一年,几乎...2007-12-30 12:41:00 · 97 阅读 · 0 评论 -
C语言的指针
<o:p></o:p> 1. 指针<o:p></o:p>指针包括两个方面的内容:<o:p></o:p>指针指向的对象,即指针变量的值,也就是数据对象存放的地址<o:p></o:p>指针的类型,指针的类型决定了该怎么去解释其指向的对象区域,同一片内存区域,按照不同的解2008-08-26 22:26:00 · 105 阅读 · 0 评论 -
C++构造和析构
#include <iostream> using namespace std;class B { public: B() { cout<<"default constructor"<<endl; } B( B &b) { cout<<"copy c...2008-09-04 15:15:00 · 109 阅读 · 0 评论 -
讨论记录之C++细节
Participants:LF,HZP,CPP,ZY<o:p></o:p>Date:<st1:chsdate isrocdate="False" month="9" islunardate="False" day="16" w:st="on" year="2008">08-09-16</st2008-09-17 22:32:00 · 158 阅读 · 0 评论 -
Java details
本来不准备看JAVA的,不过,看到简历许多部分都涉及到了J,为了不至于阴沟里翻船,还是瞄他一瞄。与C++对比着看。主要参考<C++与Java对比编程>。Thinking in Java就不看了,太长太裹脚。1.Java方法覆盖(override)限制 a。子类覆盖方法的返回值类型必须与基类方法的返回值一致。比如像基类方法定义为public float fun();,子类方法定义为pu...2008-09-21 19:10:00 · 152 阅读 · 0 评论 -
md5 算法 说明 以及 c源代码
1、MD5算法是对输入的数据进行补位,使得如果数据位长度LEN对512求余的结果是448。即数据扩展至K*512+448位。即K*64+56个字节,K为整数。 具体补位操作:补一个1,然后补0至满足上述要求 2、补数据长度: 用一个64位的数字表示数据的原始长度B,把B用两个32位数表示。这时,数据就被填补成长度为512位的倍数。 3. 初始化MD5参数 四个32位整数 (A,B,C,D) 用...2008-02-28 15:52:00 · 649 阅读 · 0 评论 -
C++字符串两个需注意的地方
1.访问单个字符 可以通过下标操作符"[]"或者成员函数"at()"访问单个字符。不同之处在于, [] 不会进行范围检查,而at() 会进行范围检查。也就是说,当访问一个不存在的字符位置时,采用 [] 将会获得不可预知的结果。若采用的是 "at()" 访问一个不存在的字符位置,程序将会中止。2. sizeof sizeof 可获得 string 的长度。所有的 string 类型调用 siz...2008-03-09 11:20:00 · 135 阅读 · 0 评论 -
记几个常见的c文件操作
近用c语言做文件操作比较频繁,记几个常用的操作获得文件大小:fseek(fp, 0, SEEK_END);int fileSize = ftell(fp);rewind(fp);读取指定位置的数据块:fseek( fp,offset,SEEK_SET );int num_read = fread(buf, 1, length, fp); 删除文件int res = access( fi...2008-03-31 13:51:00 · 122 阅读 · 0 评论 -
C++中的static
C++的static有三个意思。1. 作为类的数据成员或者成员函数的限定符。 这跟JAVA中static中的意义是一致的。 2.把一个全局变量或一个函数的作用域限制在定义它们的文件之内。 用static关键字进行声明的全局标识符具有internal链接属性,也就是说它不能用extern声明链接到其他文件。 3.局部变量在函数内部的存储持续时间 若一个局部变量用sta...2008-04-30 15:25:56 · 126 阅读 · 0 评论 -
精致的C Code
/* strlen: return length of s */ int strlen(char s[]) { int i; while (s[i] != '\0') ++i; return i; } /* strlen: return length of string s */ int ...2008-08-24 09:38:00 · 131 阅读 · 0 评论 -
函数指针
<<c陷阱与缺陷 >>--“ 理解函数声明 ” 有一次,一个程序员与我交谈一个问题。他当时正在编写一个独立运行于某种微处理器上的c程序。当计算机启动时,硬件将调用首地址为0位置的子例程。为了模拟开机启动时的情形,我们必须设计出个c语句,以显式调用该于例程。经过一段时间的思考,我们最后得到的语句如下:(*(void(*)())0)();像这样的表达式恐怕会令每个c程...2008-07-19 14:20:00 · 100 阅读 · 0 评论 -
讨论记录之C++细节
Participants:LF,HZP,CPP,ZYDate:08-09-16 7:20PMRecorder: CPP,ZY参考文献:1、《effective C++》2nd Edition,Scott Meyers etc.2、《C++程序设计教程》,钱能3、《高质量C++C编程指南》,林锐4、http://keith.ecjtu.com/article.asp?i转载 2008-09-17 22:32:00 · 1428 阅读 · 3 评论 -
linux下编译CxImage
网上下了个据说说能够在linux编译通过的cximage源码包,但是拿来编译却遇到几个问题:1.必须编译全部8个子目录CxImage j2k jasper jbig jpeg png tiff zlib生成8个静态库。缺一不可。原来的makefile只生成了五个lib将原有makefile的SUBDIRS = zlib jpeg tiff png CxImage修改为:SUBDIRS = zl原创 2008-12-08 15:55:00 · 6249 阅读 · 2 评论 -
让C++的对象支持多类型
借助 C/C++ 的union,可以设计出近似弱类型的变量,同一类型的变量可以承载不同类型的数据。比如说一个对象A,可以按如下不同的类型使用:A a = 1;A b = 1.1;A c = "abc";A d = true;使用的时候可以按照其真实的类型来使用。比如字符串c以调用c.size()获得其长度。这个想法来源于两个开源库的基础数据类型设计,一个是xmlrpcli原创 2008-12-18 16:59:00 · 1945 阅读 · 1 评论 -
通用的DataTable转换为List
c# code /// /// 将DataTable转换为list /// /// /// /// public static IList DataTableToList(DataTable dt) { if (dt == nu原创 2009-04-23 21:58:00 · 1880 阅读 · 0 评论 -
AdaBoost相关的Matlab代码
很久没上优快云了,偶尔上来一瞅,发现有些小哥哥们求AdaBoost的代码。真不好意思,一直没看到。发了吧: http://download.youkuaiyun.com/detail/kofsky/5555011包括:1、图片预处理;2、特性提取:颜色、灰度共生矩阵、灰度差分、Harr-Like、等多个特征提取算法;3、特性选择:从特征向量中选取原创 2013-01-03 16:23:12 · 20434 阅读 · 23 评论 -
这个只有两行的C程序至少有80%的人会判断错,不信的就进来!
第一个 #include<stdio.h>;void main(){ char *ptr = "csdn"; printf( "%c\n",*(ptr++) );}第二个 #include<stdio.h>;void main(){ int i = 10; i << 1; i >> 5; ...2008-06-19 10:41:00 · 90 阅读 · 0 评论 -
C++两个小技巧
从新新那里学来的,记录一下,感觉还挺不错,哈哈一。灵活的在注释与代码间转换注释风格:/*code here//*/ 代码风格://*code here//*/ 看一下两者之间,相差什么呢?只差一个斜杠/,也就是说,只要删一个斜杠,就可以把中间这段代码注释掉,增加一个斜杠,就可以使中间这段代码有效。在写一些测试代码时会比较有用。二。写个宏定义,交换两个变量 a, ...2008-06-25 14:52:00 · 192 阅读 · 0 评论