c编程
文章平均质量分 75
third_eye
这个作者很懒,什么都没留下…
展开
-
c文件操作函数
<br /><br />c文件操作函数<br /> <br /> <br />clearerr(清除文件流的错误旗标) <br />相关函数 feof<br />表头文件 #include<stdio.h> <br />定义函数 void clearerr(FILE * stream); <br />函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。 <br />返回值 <br /> <br /> <br />fclose(关闭文件) <br />相关函数 c转载 2011-01-10 10:23:00 · 380 阅读 · 0 评论 -
free内存大小的问题
<br /><br />我们知道malloc的调用形式如:type* p = (type *)malloc(n*sizeof(type))<br />free的调用形式如:free(p)<br />好了,问题来了,free函数,我们只给传入一个指针,没有传入内存块的大小n,那么编译器怎么知道要释放多少字节的内存,如果让你来实<br />现怎么实现?<br />当时,蒙了,郁闷(丢人)。。。<br />之前自己都看过类似的代码的。。。<br />无非就是当申请内存的时候,p指向的内存的起始字节有几个存放着这块转载 2011-01-10 18:04:00 · 1901 阅读 · 1 评论 -
More Effective C++:自增和自减
<br /> <br />从你开始做C程序员那天开始,你就记住increment的前缀形式有时叫做“增加然后取回”,后缀形式叫做“取回然后增加”。这两句话非常重要,因为它们是increment前缀与后缀的形式上的规范。 <br />// 前缀形式:增加然后取回值<br /><br /> UPInt& UPInt::operator++()<br /> {<br /> *this += 1; // 增加<br /> return *this; // 取回值<br /> }<br /><br />转载 2011-03-27 09:33:00 · 351 阅读 · 0 评论 -
面向对象编程中的继承和组合的简单比较
<br /><br />继承(inheritance),是类 D 的对象可以使用仅对类C的对象有效的方法或者属性的特性,它使得这些方法和属性就好像是由类 D 定义的。这时,C 是 D 的父类,D 是 C 的子类。在继承结构中,父类的内部细节对于子类是可见的。所以我们通常也可以说通过继承的代码复用是一种“白盒式代码复用”。<br />组合(composition),是通过对现有的对象进行拼装(组合)产生新的、更复杂的功能。因为在对象之间,各自的内部细节是不可见的,所以我们也说这种方式的代码复用是“黑盒式代码复转载 2011-05-19 16:24:00 · 376 阅读 · 0 评论 -
关于洗牌算法的一点思考
最近在做梭哈这个游戏,于是自然而然会用到洗牌算法。洗牌算法网上讲的也不少了,归结起来有如下两种形式。第一种是每次找一个随机的位置,将54个数依次放到找到的位置中,其思路大概这样的:1、用一个Bool型数组记录各个位置是否已经放置了数,如果放置则置true,没有则为false。在算法开始时数组初始化为false。2、每次产生一个0~53的随机数,看这个位置是否已经放置了数,如果已经放置了,则继续用同样的方法找一个随机位置判断;如果这个位置还未放置,则设置此位置,并标记其已经放置。3、反复执行(2)直到所有的位转载 2011-06-01 10:59:00 · 564 阅读 · 0 评论 -
关于epoll的用法的说明
以下文章转在网络,对epoll说明比较详细epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epol转载 2011-07-20 17:47:03 · 402 阅读 · 0 评论