
c&c++
csdn_KONG
吉林大学在校学生
展开
-
从零实现一个跨平台的静态网页服务器
大三要结束了,想写点东西,一是为了积累些技术,二是为了下学期实习做做准备,不然简历上的项目经验真没什么好写的。c/c++的底层是操作系统和各种协议以及内存布局,java的底层是jvm。不想写一般的应用程序,那就从0实现一个跨平台的静态网页服务器吧。封装跨平台的各个类:有Tcp和Udp的套接字类,Http包的解析和生成类还有一个读取Html文件的类运行结果还算不错,W原创 2015-07-03 11:20:13 · 1752 阅读 · 0 评论 -
c语言中如何实现可变参数
c语言函数库中有不少类似于printf,scanf的函数,这些函数接收的参数个数是不确定的。这些函数实际是通过文件中的va_list,va_start,va_arg,va_end宏定义是实现的。另外,我们知道程序运行时的内存结构后,也可以通过直接访问这些内存空间获得实际参数值(事实上stdarg.h文件中的相关宏定义就是这么操作的)。原创 2015-06-14 12:50:39 · 727 阅读 · 0 评论 -
SNL文法的词法分析器
知道文法规则后,我们就要分析出其中的所有的符号、操作符、标示符(id)、字面值(nb)、以及关键字。其中符号、操作符、关键字都是一符一类,我们需要写程序分析每一个字符,最终得到一个token序列,标示符表及字面值表。闲话少说,看代码(下面程序使用vs2013编译)#define _CRT_SECURE_NO_WARNINGS#include #include #include #in原创 2015-06-14 13:45:16 · 5389 阅读 · 2 评论 -
SNL文法的递归下降语法分析器
得到token序列后,我们就可以采用递归下降法对其进行语法分析。如果没有语法错误,打印token序列,提示没有语法错误,否则,打印已经匹配的token,提示语法错误。(下面程序使用vs2013编译)#define _CRT_SECURE_NO_WARNINGS#include #include #include #include #include using namesp原创 2015-06-14 14:01:05 · 6928 阅读 · 7 评论 -
栈变量被覆盖的问题在不同编译器中的表现,蛋疼的VC++
看到一道题说栈中连续定义一个指针和一个数组,类似于这样{char *ptr = 指向一个字符数组;char buf[8];gets(buf);strncpy(ptr,buf,8);}当修改buf数组时发生越界会修改ptr指针的指向,这设计到程序健壮性的问题。当我用VS2013尝试这段代码时,诡异的事情发生了,明明输入了多于8个的字符,但是ptr的指向并没有改原创 2015-07-18 19:37:25 · 1285 阅读 · 4 评论 -
const变量探究
同样的一段代码,在c和c++中的表现却不相同。#include #include int main(){ const int i = 1; int *j =(int *) &i; *j = 0; printf("%d,%d\n", i,*j); system("pause");}当用c编译器编译运行时,结果是0,0当用c++编译器编译运行时,结果是1,0原因:c语言原创 2015-07-19 16:03:44 · 686 阅读 · 0 评论 -
多线程程序跑久了效率下降分析
最近在写一个搜索引擎,有个中间程序是分析分词结果文件,建立倒排索引。最初写的是单线程的,效率低到无语,于是又改成多线程的了。本以为万事大吉,可是在分析了将近2000文件的时候,效率低的和单线程的没什么区别了。打开任务管理器,线程数显示3(我设置的子线程数量最高为15,加上启动就有的,程序刚运行的时候线程数可以达到20个)。 百度了下,Windows单个程序的线程数是有上限的,一般只能开到原创 2015-08-12 20:13:12 · 1742 阅读 · 1 评论 -
c++制作小游戏--雷电
最近无聊,于是用c++实现了一个小游戏--雷电,貌似运行的还不错,贴图和声效也是Duang!Duang!的。整个项目我也会给出下载链接,有兴趣的可以编译运行一下,用到了C++11的新特性,最好是使用vs2013编译。游戏说明:操作:方向键 -- 控制移动空 格 -- 开火P -- 打开商店,再起按下关闭0~9和+-键 -- 购买(需打开商店)原创 2015-07-01 10:05:18 · 19724 阅读 · 5 评论 -
自己动手写搜索引擎
实现了一个搜索引擎,可以检索csdn网站的所有博客文章,当然,最新的文章是没有的。 先说下项目思路吧, 整个项目分为6个子程序: 爬虫1:爬取所有csdn网站的网页,并将爬到的博客文章url存入数据库。(python) 爬虫2:从数据库中取文章url,并爬取文章内容到数据库。(python) 分词程序:利用friso分词库,将所有文章内容切分成原创 2015-08-14 14:49:00 · 6475 阅读 · 16 评论