摘要: 前段时间在一个论坛上看到了一个帖子,lz发了一个代码,如下。注意,sizeof语句后面没有加分号。 #include <stdio.h>int main(){ int a; a = sizeof(long double) printf("%d\n",a); return 0;} 这个代码实在太简单了,我想大家学C/C++时都使用过这个代码,我们都会这样去看各种基本数据类型占用了几个字节的存储空间,但是这个敲错的代码却出现了一个很诡异的问题:尽管sizeof一句后面忘了加分号,但是使用VC6编译这个代码却是零错误零警告,只是运行时没有任何输出,这是怎么回事呢? 我 阅读全文
posted @ 2011-06-06 22:11 pianoid 阅读(1077) 评论(13) 推荐(2) 编辑
摘要: 关于IsDebuggerPresent()函数的文章已经数不胜数了,随便一搜就能找出一堆来,但是我还是准备写一份放在这里,算是留个备份吧。 微软给我们提供了一个API函数用来检测当前程序是否正在被调试,这就是可怜的IsDebuggerPresent() ,这个函数的存在似乎只是为了证明在Windows的世界里确实存在一个最杯具的API函数……这个函数的实现很简单,直接windbg查看一下:0:000> u kernel32!IsDebuggerPresentkernel32!IsDebuggerPresent:7c813133 64a118000000 mov eax,dword ptr 阅读全文
posted @ 2011-05-30 22:53 pianoid 阅读(4413) 评论(0) 推荐(0) 编辑
摘要: 刚才看了一下TrueNight_0写的tencent实习生招聘总结(应聘总结之腾讯实习生(1) 、应聘总结之腾讯实习生(2) ),完全没有难度啊,全部水题,为啥我就不知道tencent会招实习生呢……前段时间联系了几个其它公司的HR之类的,都回复表示不想要大三的学生实习,估计是因为大三学生实习的时间比较短吧,毕竟只有两个月多一点的时间,基本上刚能脱离senior自己适应公司的工作就该回学校了,而且还不能确定到了大四是否会签到自己公司,如果只是被我们这些大三学生蹭了经验人家会觉得不值得,唉唉,忘了问一下tencent啊,毕竟tencent还是有自信的——你大三来实习,到了大四还是会签我们的。 . 阅读全文
posted @ 2011-05-30 10:47 pianoid 阅读(698) 评论(0) 推荐(0) 编辑
摘要: 最近接触到一个很有意思的问题,如何在Windows控制台下画图,翻遍了C的头文件也没找到画图的函数,好吧,那就用Windows提供的API函数吧,看来想移植是没戏了。先画一个简单的图,类似心电图那种吧,假设得到的数据是纵坐标的值,横坐标默认从0开始,每隔512uS(微秒的那个符号不会打)得到一个纵坐标值,要求将所有纵坐标值连起来,就以这个简单的程序为例吧。 既然有了需求,实现起来就简单了,首先我们应该有一个控制台窗口的上下文(device context)句柄,然后使用MoveToEx和LineTo函数连线就行了。代码如下: #include <windows.h>#include 阅读全文
posted @ 2011-05-27 19:17 pianoid 阅读(10401) 评论(1) 推荐(1) 编辑
摘要: 今天开始学python,现在才接触了不到几个小时,已经感觉python很强大了,还有一些很新奇的地方,例如序列居然能从后向前访问。 我的第一个python程序功能很简单,只是将用户输入的数字形式的年月日变成英文日期格式输出,没有任何合法性检查,呵呵,所以输入abcd年2月31日也是可以正常输出的,当然如果月份超过12或者日超过31的话就会报“IndexError: list index out of range”。#calendar#月份名称months = [ 'January', 'February', 'March', 'April 阅读全文
posted @ 2011-05-25 20:17 pianoid 阅读(791) 评论(0) 推荐(0) 编辑
摘要: 上周又做操作系统实验,题目是用程序模拟实现银行家算法,写了半天还真有点晕,主要是因为想尽可能符合课本上的描述,所以写出来的程序就比较恶心了,好了,银行家算法就不多说了,不了解的可以先看一下百度百科上的描述,分段上代码吧。完整代码包下载地址:http://files.cnblogs.com/pianoid/Banker.rar 首先要定义一些结构体,为了符合课本描述,我只定义了一个结构体: typedef struct { int A; int B; int C;}RESOURCE; 结构体里面的三个域分别表示三种资源的数量。 根据课本例题上的数据初始化三个矩阵和一个向量。//最大需求矩阵RE. 阅读全文
posted @ 2011-05-15 19:42 pianoid 阅读(39221) 评论(7) 推荐(8) 编辑
摘要: 最近有个同学拿了一个程序说让我帮忙给调试一下,我拿到看了一下发现,问题确实很怪异,他在写一个console程序并且希望能有一个简单的菜单,用户输入0-5之间的整数进行选择,输入错误会输出提示信息并要求重新输入,但是如果用户输入是一个字符的话,程序就会陷入死循环,不停地打印提示信息。 问题明确了,答案也就出来了,显然是因为scanf函数或者cin读取输入字符时的问题,我用C写了小程序来演示这个问题,代码如下: #include <stdio.h>int main(){ int number; printf("请输入0-5之间的数字:\n"); for( ; ; ) 阅读全文
posted @ 2011-05-03 19:58 pianoid 阅读(5740) 评论(5) 推荐(3) 编辑
摘要: 最近试着做一些笔试面试题,既是为来年找工作做准备,也可以做为数据结构和算法的复习笔记,就陆续发在这里吧,有需要的朋友可以看一下,如果有没考虑周全的地方欢迎指正。 先来一个最常见的题目:反转单链表。假设单链表的数据结构定义如下: typedef struct LNode{ int data; struct LNode *next;}LNode, *LinkedList; 并且这个单链表有一个头指针list指向第一个结点,最后一个结点指向NULL,很容易理解。 最容易想到的第一种方法就是重新建立一个单链表newList,每次将list中的第一个结点放到newList后面。注释比较详细,所以就不具. 阅读全文
posted @ 2011-05-03 16:32 pianoid 阅读(103951) 评论(18) 推荐(8) 编辑
摘要: 1996年诺贝尔物理学奖获得者罗伯特·科尔曼·理查德森(Robert Coleman Richardson)教授昨天下午在学校活动中心大礼堂有一个报告会,题目是《人类发展与物理学进展——超流体与宇宙弦理论》,一听这个题目我就喜欢,多科幻的题材,自然不能放过。 学校的一个不知是谁的领导在上面叽歪了几分钟后,报告会正式开始,讲义的题目好像是《The Discovery of Superfluid 3He》,有点记不清了。那位大牛不知是累了还是年纪大了,一个单词说的好几遍才能说出来,一句话要等老长时间才能说完,好在差不多都能听懂,原来美国人说英语比英语老师说的英语好懂,哈哈,可惜 阅读全文
posted @ 2011-04-28 21:59 pianoid 阅读(762) 评论(0) 推荐(0) 编辑
摘要: 今天做操作系统实验,老师要求写一个小程序模拟用信号量解决生产者-消费者问题的过程,于是写了一个非常纠结的小程序,对信号量进行了大幅度的修改,虽然这样更容易看到每一步的运行结果,但是却让代码非常纠结,信号量也面目全非,承受能力比较强的童鞋们看一下吧。 对信号量的主要修改有:分离了记录型信号量和二进制信号量的wait和signal操作,这样可以更方便的看出是在wait哪个信号量,而且给wait操作多加了一个参数,指示是生产者还是消费者在wait该信号量;为了简便,将信号量定义为int,没有使用阻塞队列,也没有忙等,最低只能减到0,不能减到-1,看起来似乎是整型信号量;没有实现block原语,在w. 阅读全文
posted @ 2011-04-26 21:48 pianoid 阅读(8516) 评论(0) 推荐(1) 编辑