摘要: 刚才记录了下用eclipse在linux下开发,突然想起来也另一种方法:MinGW。MinGW是Windows的gcc开发工具,直接使用Windows的运行库,所以可以在windows下面方便的用gcc进行编译。但是这个方法很有局限,那就是没办法使用Linux下面的系统函数,除非自己的代码不依赖于任... 阅读全文
posted @ 2014-06-29 22:18 linxr 阅读(1365) 评论(0) 推荐(0) 编辑
摘要: 一直在Linux下开发,苦于没有IDE,一般都是自己编写Makefile,然后在windows下用文本编辑器ftp打开文件编辑,然后在linux下完成编译。调试代码也只能是命令行用gdb进行调试,相当痛苦。现在推荐一个可行的方法:jre +eclipse + Xming + SecureCRT 或 ... 阅读全文
posted @ 2014-06-29 22:04 linxr 阅读(11310) 评论(1) 推荐(1) 编辑
摘要: 当然下面列出来的几点都是C的基础用法,只不过是这些用法可能平时不会被注意。所以很多东西第一次看到的时候,可能会觉得很怪异,但是细细想想就能很好的理解,也就能更好的清楚C语言的一些特性。但是在具体的编码过程当中,我还是希望都能老老实实规规矩矩的。因为程序员不需要太多棱角,把代码写得规范整洁比耍小聪明要重要得多。下面我列举了5个例子说明一些问题,如果你是老手看到这些就一笑而过吧,如果是新手,我相信还是会得到一些启发的。 1. #和##在宏中的作用,以及带参宏,参数的传递问题。 2. 结构体中域的偏移位置的计算问题。 3. 结构体的定义以及初始化的用法。 4. 数组和指针在运算... 阅读全文
posted @ 2014-01-16 00:23 linxr 阅读(3948) 评论(15) 推荐(5) 编辑
摘要: 上一次曾经发布过一篇如何实现一个代码编辑器。今年工作中得空,所以对这个编辑器进一步做了些更新,把名字改成了从CuteC改成了CEditor。主要是重写了软件的界面(最终还原朴素),重写了编辑控件语法高亮的着色方式,还有增加了一个简单的SSH客户端和SFTP文件编辑的功能。感觉基本的功能已经实现了,所以再次写点东西记录一下。并且发布一下编辑控件的源代码,有兴趣的可下载下来看看,虽然代码写得比较乱。 上个版本:http://www.cnblogs.com/linxr/archive/2011/10/30/2229256.html 编辑控件源码链接:http://files.cnblogs.com. 阅读全文
posted @ 2013-08-13 12:37 linxr 阅读(10424) 评论(1) 推荐(10) 编辑
摘要: 源码下载: kvfs.rar正文: 所谓的Key-Value就是每次存储一个数据时,是根据Key进行索引存储的。为了实现Key的快速查找功能,我使用了B-tree存储结构。B-tree被大量用于数据库的索引中,所以选用B-tree想必不会有太大的问题。Value是对应该Key的值,他的长度是未知的,所以要实现这样一个存储系统,必须要解决从Key值到文件位置的映射关系。问题一:实现文件的"自由"读写问题二:实现BTree问题一:实现文件的"自由"读写。 基本思想:所有内容被存储到一个文件中,文件被划分成同一大小的粒度,可以自由的申请不同的大小空间,可以释放 阅读全文
posted @ 2013-08-12 12:15 linxr 阅读(19049) 评论(12) 推荐(5) 编辑
摘要: 目录:1.脚本的执行要素2.栈的模拟.3.变量在栈中的地址计算4.函数的调用过程5.命令的解析6.C的库函数调用在前面的文章中,我主要讲解了语言的解析部分,最终我们生产了脚本的中间代码。接下来,将是一个最困难的时刻,怎么解析执行中间代码! 执行代码其实是经过一定处理后的中间代码的另外一种表示。正如前面提到的,我们的中间代码是三元组的形式,比如:c = a + b * c; 可以表示成 @1 = b * c; @2 = a + @1; @3 = c = @2;但是,这种中间代码还得经过一定的转换才能更方便我们解析执行。接下来,我将一步步的说明,中间代码被执行的每个过程。1.脚本的执行要素 一个脚 阅读全文
posted @ 2012-03-15 20:26 linxr 阅读(17428) 评论(12) 推荐(3) 编辑
摘要: xrc改了一半,回家过年回来就没有继续写下去。最近公司项目仅的很,周六周日也懒得写自己的程序,都睡过去了。以前改得代码又得重新熟悉一下,哎。尽量早点改完吧。太累了,希望能早点写完这个版本。 阅读全文
posted @ 2012-02-19 02:30 linxr 阅读(1587) 评论(0) 推荐(0) 编辑
摘要: 1.代码块 代码块是由多个表达式组成的一组代码。它可以看成是以下的形式: { exp1 exp2 ... } 它由"{"开始,由"}"结束,中间包含多条表达式,或者是控制语句。如果不是以"{"开始,那么,一个代码块就是一条表达式。在上面的章节,我们已经介绍过了,每个表达式会产生一个中间代码。它是一个链表 struct _code * ,而一个代码块,是由多个表达式组成的,所以我们将每个表达式的中间代码链表连到一起就成了代码块的中间代码了。 如果代码块中包含控制语句,那么,我们必须做一些处理,即在代码链表中插入跳转语句,和跳转位置(La 阅读全文
posted @ 2012-01-04 10:01 linxr 阅读(7209) 评论(2) 推荐(2) 编辑
摘要: 1. BNF定义2.表达式解析3. 后缀表达式4.后缀表达式到中间代码5.中间代码的表示1. BNF定义 虽然不想多提理论知识,但是有些东西还是避免不了。在解析表达式的时候,我们必须知道它的BNF定义,这样解析起来就非常方便了。所谓的BNF定义,相信大家看一眼就知道了: exp_additive -> exp_multiplicative ( "+"|"-" ) exp_multiplicative exp_multiplicative -> exp_cast ( "*"|"/"|"%&quo 阅读全文
posted @ 2011-12-28 14:17 linxr 阅读(11096) 评论(10) 推荐(6) 编辑
摘要: 说起来很有意思,自认为对C语言理解得还是比较深刻的。但居然到今天才知道有个strtok函数,试用了一下突然感慨以前做了多少重复劳动。每次需要解析配置文件,每次需要分割字符串,居然都是自己去分割字符串,既累人又容易出错。感概继续学得不够全面啊!这里引用一段strtok用法:The strtok() function returns a pointer to the next "token" instr1, wherestr2contains the delimiters that determine the token. strtok() returnsNULLif no t 阅读全文
posted @ 2011-12-28 10:16 linxr 阅读(79908) 评论(4) 推荐(3) 编辑