随笔分类 -  Program Design

摘要:#include <stdio.h> #define LEN 5 char buf[LEN] = { 'a', 'b', 'c', 'd', 'e' }; void print_backward(int pos) { if (pos = LEN) return; printf_backward(pos + 1); putchar(buf[pos]); } int main(void) { print_backward(0); ... 阅读全文
posted @ 2011-06-27 08:44 郭—大—侠 阅读(173) 评论(0) 推荐(0)
摘要:因为最近编写的一个程序,工程量比较大。 只是子文件就10+多个了,所以,将一些全局变量全部声明在了自己定义的shao.h头文件中了。 今天又增加了一个解算模型的子函数,在编译的时候就报了multiple definition of **的错误。 google了一下,问题原因及解决方法如下: 问题原因: 当多个文件包含同一个头文件时,并且你的.H里面没有加上条件编译 #ifndef TEST_H #define TEST_H #endif 就会独立的解释,然后生成每个文件生成独立的标示符。在编译器连接时,就会将工程中所有的符号整合在一起,由于,文件中有... 阅读全文
posted @ 2011-05-26 09:13 郭—大—侠 阅读(676) 评论(0) 推荐(0)
摘要:Integrated Development Environments + RAD tools + GUI-builders on Linux: General/Editors: Amy(HTML, C, C++, Java, SQL, LaTeX, Makefiles and many more languages) blIDE(incomplete; no downloads as of yet) IBM'sEclipse(an extensible IDE kit; Java, C/C++, plus other languages v... 阅读全文
posted @ 2011-05-21 05:27 郭—大—侠 阅读(764) 评论(0) 推荐(0)
摘要:What is Indent indent就是代码格式化程序,能让程序更加的易读。可以从一种方式的C类型转换成另一种格式。 indent熟悉大量的C语法,可以通过设置来进行格式化代码。 Download Current Version: GNU indent 2.2.7。 Download : ftp.gnu.org/gnu/indent/indent-2.2.7.tar.gz 简单例子 写个最简单的没有经过任何修饰的helloworld: 使用indent以后: 可以看到的变化为: 1.每个语句向后推进了8个字符; 2.i=5优化成了i = 5更易读 使用的命令... 阅读全文
posted @ 2011-05-13 06:09 郭—大—侠 阅读(243) 评论(0) 推荐(0)
摘要:从helloworld入手 我们从大家最常使用的例子程序helloworld开始。 下面的过程如果简单地说来就是: 新建三个文件: helloworld.c configure.in Makefile.am 然后执行:aclocal; autoconf; automake --add-missing; ./configure; make; ./helloworld 就可以看到Makefile被产生出来,而且可以将helloworld.c编译通过。 很简单吧,几条命令就可以做出一个符合惯例的Makefile,感觉如何呀。 现在开始介绍详细的过程: 1、建目录 在你的... 阅读全文
posted @ 2011-04-29 18:19 郭—大—侠 阅读(198) 评论(0) 推荐(0)
摘要:fgets(由文件中读取一字符串) 相关函数 open,fread,fscanf,getc 表头文件 include<stdio.h> 定义函数 har * fgets(char * s,int size,FILE * stream); 函数说明 fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。 返回值 gets()若成功则返回s指针,返回NULL则表示有错误发生。 范例 #include<stdio.h> main() { char... 阅读全文
posted @ 2011-04-28 11:06 郭—大—侠 阅读(310) 评论(0) 推荐(0)
摘要:1、下载安装Eric:全部安装软件均可以在Ubuntu下的新立得软件包管理器中搜索安装。几个必须安装的软件:Eric、Qt4、PyQt4.2、配置Eric:安装完成后,第一次启动Eric会有一个配置界面,如果不及时配置则也可以在settings->references下面进行配置。展开左侧Editor,打开Autocompletion,选中Autocomplition Enabled,然后将下面的选项全部选上。source下选中from Document and API files。然后在展开左侧的APIs,语言选择Python,点击add右侧的浏览按钮,在/usr/share/eric 阅读全文
posted @ 2011-04-04 16:02 郭—大—侠 阅读(402) 评论(0) 推荐(0)
摘要:下载 C/C++ 支持如果尚未安装 NetBeans 6.0 IDE,请转至 NetBeans IDE 6.0 Download 页,然后下载包含 C/C++ 支持的 IDE 版本。如果已安装 NetBeans IDE 6.0,但未包含 C/C++ 支持,请完成以下步骤为 IDE 添加 C/C++ 支持。如果网络使用代理,请从主菜单中选择“工具”>“选项”,选择“手动代理设置”,输入代理的 HTTP 代理和端口,然后单击“确定”。 从主菜单中选择“工具”>“插件”。 在“插件”对话框中,单击“可用插件”标签,然后滚动至 "C/C++" 类别。 选中 " 阅读全文
posted @ 2011-03-24 12:41 郭—大—侠 阅读(1291) 评论(0) 推荐(0)
摘要:昨天花了一下午的时间写了一个32位转成4个8位,然后按要求拼接的32位数据软件实现起来算是比较麻烦的,不过在思考的过程中得到了很多关于位操作的经验。 不过到最后没有用而已,直接用硬件一个reverse就搞定了。 看来虽然软件开发周期和简易性都比较好,不过有些东西还是不能和硬件编程VHDL相比。 For example:算法的并行性和速度瓶颈。----> 阅读全文
posted @ 2010-11-18 09:11 郭—大—侠 阅读(120) 评论(0) 推荐(0)
摘要:用 Microsoft Visual C++ 创建一个使用 wpcap.dll 的应用程序,需要按一下步骤: 在每一个使用了库的源程序中,将 pcap.h 头文件包含(include)进来。 如果你在程序中使用了WinPcap中提供给Win32平台的特有的函数, 记得在预处理中加入WPCAP 的定义。 如果你的程序使用了WinPcap的远程捕获功能,那么在预处理定义中加入HAVE_REMOTE。不要直接把remote-ext.h直接加入到你的源文件中去。 设置VC++的链接器(Linker),把wpcap.lib库文件包含进来。wpcap.lib可以在WinPcap中找到。 设置VC++的链接 阅读全文
posted @ 2010-11-04 11:34 郭—大—侠 阅读(416) 评论(0) 推荐(0)
摘要:#include "pcap.h"main(){ pcap_if_t *alldevs; pcap_if_t *d; int i=0; char errbuf[PCAP_ERRBUF_SIZE]; /* 获取本地机器设备列表 */ if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL /* auth is not needed */, &alldevs, errbuf) == -1) { fprintf(stderr,"Error in pcap_findalldevs_ex: %s/n... 阅读全文
posted @ 2010-11-04 11:31 郭—大—侠 阅读(247) 评论(0) 推荐(0)
摘要:winpcap 4.1.1在vc6下编译会出现以下错误,原因是vc6.0并不完美支持c++99标准,在64位cpu中编译会有问题,将winpcap开发包换到4.0.1版本及以下错误消失 c:/wpdpack/include/pcap-stdinc.h(79) : error C2144: syntax error : missing ';' before type 'unsigned int' c:/wpdpack/include/pcap-stdinc.h(79) : fatal error C1004: unexpected end of file foun 阅读全文
posted @ 2010-11-03 18:05 郭—大—侠 阅读(213) 评论(0) 推荐(0)
摘要:什么是SocketSocket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的 Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返 回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。常 阅读全文
posted @ 2010-11-02 18:20 郭—大—侠 阅读(1543) 评论(0) 推荐(0)
摘要:进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename....filename :打开多个文件,依次编辑移动光标类命令h :光标左移一个字符l :光标右移一个字符space:光标右移一个字符Backspace:光标左移一个字符k或Ctrl+p:光标 阅读全文
posted @ 2010-10-22 16:47 郭—大—侠 阅读(157) 评论(0) 推荐(0)
摘要:#include <qapplication.h>#include <qpushbutton.h>int main(int argc,char *argv[]){ QApplication app(argc,argv); QPushButton *button=new QPushButton("QUIT",0);QObject::connect(button,SIGNAL(clicked()),&app,SLOT(quit())); button->show(); return app.exec();}///这里我还象第二个例子似的还在 阅读全文
posted @ 2010-09-25 21:57 郭—大—侠 阅读(219) 评论(0) 推荐(0)
摘要:#include <qapplication.h>#include <qlabel.h>int main(int argc,char *argv[]){ QApplication app(argc,argv); QLabel *label=new QLabel("<h2><i>Hello""<font color=red> Qt!</font></h2>",0); label->show(); return app.exec();}编译方法类似第一个,qmake - 阅读全文
posted @ 2010-09-25 21:37 郭—大—侠 阅读(180) 评论(0) 推荐(0)
摘要:今天开始学习QT编程。其实我是比较讨厌界面编程的,感觉没有什么意思,项目需要就开始学习QT。打算从QT4学。虽然资料还不是很多。#include <qapplication.h>#include <qpushbutton.h>int main( int argc, char **argv ){ QApplication a( argc, argv ); QPushButton hello( "Hello world!", 0 ); hello.resize( 100, 30 ); a.setMainWidget( &hello ); hell 阅读全文
posted @ 2010-09-25 21:22 郭—大—侠 阅读(367) 评论(0) 推荐(0)
摘要:Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制软件,它不同于Subversion、CVS这样的集中式版本控制系统。在集中式版本控制系统中只有一个仓库(repository),许多个工作目录(working copy),而像Git这样的分布式版本控制系统中(其他主要的分布式版本控制系统还有BitKeeper、Mercurial、GNU Arch、Bazaar、Darcs、SVK、Monotone等),每一个工作目录都包含一个完整仓库,它们可以支持离线工作,本地提交可以稍后提交到服务器上。分布式系统理论上也比集中式的单服务器系统更健 阅读全文
posted @ 2010-09-22 21:59 郭—大—侠 阅读(202) 评论(0) 推荐(0)
摘要:在C标准库中有一对非常有趣的函数setjmp()函数与longjmp()函数,用来实现代替goto实现一些非常重要的功能,如异常处理。C语言中,标准库函数setjmp和longjmp形成了结构化异常工具的基础。简单的说即setjmp实例化异常处理程序,而longjmp产生异常。先介绍setjmpint setjmp(jmp_buf envbuf)宏函数setjmp()在缓冲区envbuf中保存系统堆栈里的内容,供longjmp()以后使用,setjmp()必须使用头文件setjmp.h。调用setjmp()宏时,返回值为0,然而longjmp()把一个变原传递给setjmp(),该值(恒不为0 阅读全文
posted @ 2010-09-17 10:17 郭—大—侠 阅读(414) 评论(0) 推荐(0)