随笔分类 -  C

1
最爱的还是C
摘要:题目:Function Run Fun (POJ 1579) 链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1579 #include <iostream> #include <cstdio> #include <algorithm> #include <memory.h> using name... 阅读全文
posted @ 2012-08-04 17:45 紫红的泪 阅读(278) 评论(1) 推荐(0)
摘要:随便翻翻网页,无意中发现一牛人博客中有个开挂版本的strlen。该strlen出现在VC运行库的源码中,其思想跟DSP汇编优化有点像。可惜学过DSP汇编却从没有想到把优化技术灵活运用,罪过罪过…… size_t strlen( const char* str ) { const char* ptr = str; for (... 阅读全文
posted @ 2012-06-03 13:33 紫红的泪 阅读(433) 评论(0) 推荐(0)
摘要:像 bind1st(mem_fun1<void, queue<char>, const char &>(&queue<char>::push), &queIndexes);这种把bind1st/bind2nd与mem_fun等组合使用编译通不过的解决方法: std::bind1st and std::bind2nd don't accept functors which tak... 阅读全文
posted @ 2012-03-18 16:44 紫红的泪 阅读(416) 评论(0) 推荐(0)
摘要:Visual Studio函数签名:__FUNCSIG__(__FILE__,__LINE__,__FUNCTION__,__FUNCDNAME__, more)编译器输出:#pragma message(__FUNCSIG__)GCC / MingW函数签名:__PRETTY_FUNCTION__(__FILE__,__LINE__,__FUNCTION__, more)编译器输出:#error(or#warning)__PRETTY_FUNCTION__ 阅读全文
posted @ 2011-11-15 15:19 紫红的泪 阅读(398) 评论(0) 推荐(0)
摘要:/*!\author LiuBao\date 2011/4/12\brief 微软实习面试题*/#include <stdio.h>#include <stdlib.h>#include <limits.h>#define ARRAY_SIZE(array) \ (sizeof(array) / sizeof(array[0]))typedef struct BTree BTree;struct BTree{ BTree *left; BTree *right; int value;};typedef struct Node Node;struct Node 阅读全文
posted @ 2011-04-12 11:37 紫红的泪 阅读(471) 评论(0) 推荐(0)
摘要:/*! \author LiuBao \date 2011/4/10 \brief m进制转n进制,主流实现方式 */ #include <stdio.h> /*! m进制(数字)字符串转为n进制字符串。(先由m进制转为10进制,再由10进制转为n进制) \param dest 转换完毕的n进制字符串 \param n 目的进制数(十六进制填16、二进制填2等) \param src 初始m进... 阅读全文
posted @ 2011-04-10 21:00 紫红的泪 阅读(2002) 评论(0) 推荐(0)
摘要:/*! \author Liubao \date 2011/4/4 \brief 打印数据的二进制形式 */ #include <stdio.h> #include <stdlib.h> #include <limits.h> /*! 打印字符的二进制表示,结尾不含换行符 \param ch 需要打印的字符 \warning 注意此处是宏实现,不可使用自增/自减运算符作参数! */ #defi... 阅读全文
posted @ 2011-04-04 22:35 紫红的泪 阅读(558) 评论(0) 推荐(0)
摘要:/*! \author LiuBao \date 2011/3/29 \brief 在二元树中找出和为某一值的所有路径 输入一个整数和一棵二元树。 从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。 打印出和与输入整数相等的所有路径。 例如输入整数22 和如下二元树 10 / \ 5 12 / \ 4 7 则打印出两条路径:10, 12 和10, 5, 7。 */ #includ... 阅读全文
posted @ 2011-03-29 22:45 紫红的泪 阅读(783) 评论(0) 推荐(0)
摘要:/*! \author LiuBao \date 2011/3/24 \brief 求子数组的最大和 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如:输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2, 因此输出为该... 阅读全文
posted @ 2011-03-24 12:39 紫红的泪 阅读(581) 评论(0) 推荐(0)
摘要:/*! \file List.h \author 刘宝 \version 1.0 \date 2010/12/3 \brief 异质链表List及其节点接口IListNode的声明 */ #ifndef LIST #define LIST class IListNode; class List; class ListPrivate; /*! List中iterate遍历函数使用的回调函数 ... 阅读全文
posted @ 2011-03-19 20:19 紫红的泪 阅读(1881) 评论(0) 推荐(0)
摘要:/*! \author LiuBao \date 2011/3/4 \brief 设计包含min函数的栈 定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。 要求函数min、push以及pop的时间复杂度都是O(1)。 这里给出整个栈的宏实现,使用链式栈,仿照APR_RING设计宏函数。 */ #include <stdio.h> #include <stdlib.h> #incl... 阅读全文
posted @ 2011-03-04 21:22 紫红的泪 阅读(1903) 评论(0) 推荐(0)
摘要:/*! \author LiuBao \date 2011/2/25 \brief 把二元查找树转变成排序的双向链表 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \ 4 8 12 16 转换成双向链表:4=6=8=10=12=14=16。 */ #include <stdio.h> #includ... 阅读全文
posted @ 2011-02-25 11:34 紫红的泪 阅读(2157) 评论(0) 推荐(0)
摘要:      当我们只fork()一次后,存在父进程和子进程。这时有两种方法来避免产生僵尸进程: 父进程调用waitpid()等函数来接收子进程退出状态。 父进程先结束,子进程则自动托管到Init进程(pid = 1)。       目前先考虑子进程先于父进程结束的情况:  ... 阅读全文
posted @ 2010-11-10 21:56 紫红的泪 阅读(7984) 评论(1) 推荐(3)
摘要:1、确定include路径设置正确。 2、确定lib路径设置正确。 3、确定在连接器上加入需要连接的库名字。 4、由于库可能是Win平台(lib/dll)或者是Linux平台(a/so),使用编译器时需注意库的格式是否与编译器所在平台对应。 5、确定32位程序连接的是32位库,64位程序连接64位库。   PS:这两天搞C语言程序中嵌入Python解释器,无论如何搞都报连接错... 阅读全文
posted @ 2010-10-20 16:02 紫红的泪 阅读(220) 评论(0) 推荐(0)
摘要:首先是MinGW调用VC编译出的DLL       LZMA SDK 4.65默认是VC项目,懒得再写makefile了,就直接用VS2008编译吧!还好,压缩/解压核心代码是C的,为保证DLL最大兼容性,选用__cdecl,按C代码编译。得到DLL后,需要使用MinGW中自带的dlltool工具将其转为.a文件: dlltool -U -D LZ... 阅读全文
posted @ 2010-08-16 18:34 紫红的泪 阅读(7792) 评论(0) 推荐(0)
摘要:      帮同学搞毕业设计,需要编译移植到Windows平台的uCos-ii实时操作系统。导师给的代码是2.52版的uCos-ii。首先我需要编译出一个Demo。昨天恶补了Makefile的语法,简单的写法已经会了。这里拿GNUMake 3.81版为例,来写一个Makefile:       编... 阅读全文
posted @ 2010-05-31 00:38 紫红的泪 阅读(3004) 评论(0) 推荐(0)
摘要:      这是开始做核心算法的第二天,主要实现STING层次聚类算法。这算法单独实现倒简单,可毕设要求的是文本聚类,要从文本->预处理->VSM表示->计算权值->成为可以由STING使用的数据。每篇文本中的词都是不定的,文章数也是不定的。要用VSM表示文本,很有难度,在国外网站上找到了个VSM例子:  ... 阅读全文
posted @ 2010-05-05 00:56 紫红的泪 阅读(403) 评论(0) 推荐(0)
摘要:C语言中有几个基本输入函数: 获取字符系列的的前三个函数fgetc、getc、getchar。以getchar为例,将在stdin缓冲区为空时,等待输入,直到回车换行时函数返回。若stdin缓冲区不为空,getchar直接返回。getchar返回时从缓冲区中取出一个字符,并将其转换为int,返回此int值。 MINGW 4.4.3中FILE结构体源码:MINGW 4.4.3中getchar()实现... 阅读全文
posted @ 2010-04-18 21:25 紫红的泪 阅读(51196) 评论(4) 推荐(6)
摘要:求浮点数的绝对值 [代码] 整数的平均值 对于两个整数x,y,如果用 (x+y)/2 求平均值,会产生溢出,因为 x+y 可能会大于INT_MAX,但是我们知道它们的平均值是肯定不会溢出的,我们用如下算法:[代码] 判断一个整数是不是2的幂 对于一个数 x >= 0,判断他是不是2的幂 :[代码] 不用temp交换两个整数(没啥用) [代码] 当length=2^n时,hashcode ... 阅读全文
posted @ 2010-03-05 17:33 紫红的泪 阅读(373) 评论(0) 推荐(0)
摘要:偶然在写位输出函数时发现了“(i<<3)>>3”这个问题,下面我贴一段代码使问题更加清晰: 按照正常思维,结果应该是31。因为8个1,向左移3位再移回来,左边3位应该补0。注意这里用的是unsigned char,向右移位才是逻辑移位。但程序运行时,输出的结果却是255。跟没有移位一样! 难道是编译器智商太高了,认为左移后又移回来这种傻事只有傻子才会... 阅读全文
posted @ 2009-09-27 23:39 紫红的泪 阅读(1336) 评论(0) 推荐(0)

1
点击右上角即可分享
微信分享提示