随笔分类 -  编程技巧资料

各种编程技巧与经典资料
linux脚本编写基础之珍藏
摘要:Linux脚本编写语法基础介绍: 1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。 当编写脚本完成时,如果要执行该脚本,还必须使其可执行。 要使编写脚本可执行: 编译 chmod +x filename 这样才能用./filename 来运行 2 注释 在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。 如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。 3 变量 在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写: #!/ 阅读全文
posted @ 2012-08-11 01:03 风行雪舞 阅读(547) 评论(0) 推荐(0)
linux makefile文件心得笔记
摘要:#sample Makefile edit : main.o kbd.o command.o display.o \ #第一次:作为目标“edit”的依赖文件列表出现 insert.o search.o files.o utils.o cc -o edit main.o kbd.o command.o display.o \#第二次:规则命令行中作为“cc”的参数列表 insert.o search.o files.o utils.o main.o : main.c defs.h cc -c main.c kbd.o : kbd.c defs.h command.h cc -c kbd.c command.o : command.c defs.h command.h cc -c command.c display.o : display.c defs.h 阅读全文
posted @ 2012-08-11 01:01 风行雪舞 阅读(556) 评论(0) 推荐(0)
Linux Makefile由浅入深剖析
摘要:经过长时间学习linux Makefile,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西。 假设我们有一个程序由5个文件组成,源代码如下: /*main.c*/ #include "mytool1.h" #include "mytool2.h" int main() { mytool1_print("hello mytool1!"); mytool2_print("hello mytool2!"); return 0; } /*mytool1.c*/ #include "mytool1.h" #include void mytool1_print(char *print_str) 阅读全文
posted @ 2012-08-11 01:00 风行雪舞 阅读(465) 评论(0) 推荐(0)
简明 Vim 练级攻略
摘要:vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。 ——————————正文开始—————————— 你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM幸存下来,然后一点一点地学习各种戏法。 阅读全文
posted @ 2012-05-16 13:35 风行雪舞 阅读(223) 评论(0) 推荐(0)
普通人的编辑利器——Vim
摘要:2005年5月,我开始用Vim。此后渐入佳境,原来因版权自律而放弃盗版UltraEdit的遗憾一扫而空。并且,从Vim我才体会到,什么才是真正的编辑利器。在善用佳软或其他论坛发文,我都是先在Vim中输入,并方便高效地编辑好格式,再贴到网上。而我的通讯录、记事、读书笔记、工作记录也是在Vim中完成的。包括一些文档、数据的处理,让Vim过一下,也会提高不少效率。一句话,自用Vim以来,对它迷恋日深,几乎要超过Total Commander。但是,正如善用佳软及论坛发文所提,我大力推荐“用IrfanView/XnView代替ACDSee、用7-zip代替WinRar/WinZip、用GIMP代替PhotoShop”,但并未推荐Vim代替UltraEdit。这并不意味着Vim不能胜任,恰恰相反,如果说IrfanView等替代品比原共享软件还有些差距的话,Vim则远胜UltraEdit。不推荐的唯一原因是,V 阅读全文
posted @ 2012-05-16 13:33 风行雪舞 阅读(397) 评论(0) 推荐(0)
软件项目质量保证——编码规范
摘要: 作为软件开发者,我们可以开发低等级的软件,但不能开发低质量的软件。所以,如何实施质量保证,是我们关注的主要问题之一,而编码规范则是实施质量保证的第一步。 编码规范已经成为一个老生常谈的问题,几乎每个项目,每家公司都会定义自己的编码规范。但在真正实施时,却在有意或无意地违背编码规范。程序员,不喜欢改变自己的编程习惯。加之,管理者对质量控制不足,导致编码规范往往形同虚设。有些人会认为:遵守编码规范不能给项目带来利益,也不能让客户看到我们为此付出的努力,其完全是团队自发的行为,没有必要做硬性的要求。还有些人有更好的理由:编码规范会破坏创造性和程序质量。我认为,编码规范,在软件构件以及项目管理中,甚至是个人成长方面,都发挥着重要的作用,好的编码规范是提高我们代码质量的最有效的工具之一。 阅读全文
posted @ 2012-05-15 21:47 风行雪舞 阅读(430) 评论(0) 推荐(0)
程序员之路──关于代码风格
摘要:优秀的代码风格如同一身得体的打扮,能够给人以良好的印象。初学程序设计,首先必须建立良好的编程习惯,这其中就包括代码风格。本文就代码风格中的几个重点问题进行了讨论,并在文后给出了一份优秀的代码作为风格模板。代码风格不必花费太多专门的时间研究,在使用中不断模仿模板代码,轻轻松松就能写出“专业的代码”。 阅读全文
posted @ 2012-05-15 21:47 风行雪舞 阅读(355) 评论(0) 推荐(0)
VC编程规范-程序员们都应该这样写代码
摘要:基本要求 1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。 1.2 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。 1.3 尽量使用标准库函数和公共函数。 1.4 不要随意定义全局变量,尽量使用局部变量。 1.5 使用括号以避免二义性。 阅读全文
posted @ 2012-05-15 21:44 风行雪舞 阅读(458) 评论(0) 推荐(0)
小小换行符乱谈(文本文件vs二进制文件)
摘要:使用 C 语言的 fopen 打开文件时,可以指定的 mode 有 12 个,其中 6 个包含"b"使用 C++ 的 fstream 打开文件时,可用的模式组合有 24 个(?),其中 12 个包含"binary"使用 python 的 open 打开文件,除了可以使用 C 中的 12 个模式外,还可以使用"U" 或 "rU"使用 Qt 库的 QFile 打开文件时,可以指定QIODevice::Text或不指定...如此种种,看起来是如此的复杂,难怪很多刚接触编程的网友都不相信(或者不想相信): 阅读全文
posted @ 2012-03-21 20:54 风行雪舞 阅读(983) 评论(0) 推荐(0)
step into/step out/step over的区别
摘要:step into就是单步执行,遇到子函数就进入并且继续单步执行; step over是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。 step out就是但单步执行到子函数内时,用step out就可以执行完子函数余下部分,并返回到上一层函数。 step into:进入子函数 step over:越过子函数,但子函数会执行 step out:跳出子函数 阅读全文
posted @ 2012-03-20 05:27 风行雪舞 阅读(3047) 评论(0) 推荐(0)
模块化编程的分层设计经验
摘要:模块化编程的分层设计经验 和文档管理办法(xwj) xwj 发表于 2006-2-26 23:28:00模块化编程的分层设计经验操作要点: 1、每一层直接对下一层操作,尽量避免交叉调用或越级调用 2、某些器件会把硬件驱动层合并成一个文件时,则归于较高的层 3、相同功能的外部函数尽量一致,尽量保证通用性 4、对于初次编程的模块,要严格保证中间各层的正确性好处: 1、对于后期维护扩展,只需修改应用层和物理层,根据需要扩展功能层 2、一个新项目只需把要用到的文件加入工程,简单修改调试就出来了 3、随着模块的不断积累,新的项目将越来越容易完成,后期的维护扩展也变得非常简单了 4、对于C语言编程,只需简 阅读全文
posted @ 2011-12-07 01:00 风行雪舞 阅读(571) 评论(0) 推荐(0)
如何使用extern和static限定符
摘要:extern 和static的使用方法,应该属于C语言的基础知识了。可是,在实际工作中,还是经常会在代码里看到关于这两个限定符使用的问题,总结一下,大致有两类:其一,对于模块中的变量或者函数,不了解到底加不加static或者 extern修饰符;其二,在加限定符的时候,不知道正确的使用方法。因此,有必要旧话重提,说明一下。简单的说,记住两句话即可,1 Static表示:被修饰的变量或者函数不可以被本模块以外的其他任何模块使用;而extern恰恰相反,表示同意其被被本模块以外的其他模块使用;2当变量或者程序没有被static或者extern修饰的时候,变量或者函数可以被其他模块使用。这么说可能还 阅读全文
posted @ 2011-12-07 00:59 风行雪舞 阅读(248) 评论(0) 推荐(0)
c++中const的应用
摘要:面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也是很耀眼的就const直接可以取代c中的#define以下几点很重要,学不好后果也也很严重1. const常量,如const int max = 100; 优点:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误(边际效应)2. const 修饰类的数据成员。如: class A{ const int size; … }const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的。因为类可以创建多.. 阅读全文
posted @ 2011-12-07 00:58 风行雪舞 阅读(253) 评论(0) 推荐(0)
C语言条件编译及编译预处理阶段
摘要:一、C语言由源代码生成的各阶段如下:C源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件 其中编译预处理阶段,读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。或者说是扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。预处理过程先于编译器对源代码进行处理。 在C 语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预 处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入 阅读全文
posted @ 2011-12-07 00:58 风行雪舞 阅读(309) 评论(0) 推荐(0)
#ifdef,#ifndef,#if的用法随笔
摘要:#ifdnef,#ifdef,#if的用法简析#ifdnef,#ifdef,#if都是用于防止重复编译的命令。对于处理程序中提供了条件编译的功能。常用的预处理命令介绍如下:一:#include [ **.h] 指定的文件(file)插入到指令所在位置的代码处。通常用于包含头文件,是代码可以利用在别处定义的内容。二:#define [key] [key_value] 制定键(key)的每次出现都用key_value替换。 注意:#define(即宏定义)采用的是“傻瓜式”的替换,因此它往往很危险。在C++中采用const来定义常量,实现了与#define相同的功 能,而且功能要比#define强 阅读全文
posted @ 2011-12-07 00:57 风行雪舞 阅读(476) 评论(0) 推荐(0)
sprintf,snprintf的用法(可以作为linux中itoa函数的补充)
摘要:sprintf,snprintf的用法(可以作为linux中itoa函数的补充) sprintf() 格式化输出函数(图形)功能: 函数sprintf()用来作格式化的输出。用法: 此函数调用方式为int sprintf(char *string,char *format,arg_list);说 明: 函数sprintf()的用法和printf()函数一样,只是sprintf()函数给出第一个参数string(一般为字符数组),然后再调用 outtextxy()函数将串里的字符显示在屏幕上。arg_list为参数表,可有不定个数。通常在绘图方式下输出数字时可调用sprintf()函 数将所要输 阅读全文
posted @ 2011-12-07 00:56 风行雪舞 阅读(876) 评论(0) 推荐(0)
单向链表操作详解(一)
摘要:/*===============================================作者:rerli时间:2003-12-05目的:学习单向链表的创建、删除、 插入(无序、有序)、输出、 排序(选择、插入、冒泡)、反序说明:编译没有任何错误,能生成EXE文件。 这个程序TC2.0中编译生成的EXE文件, 在运行输入节点时出现以下错误(TC2.01中没有任何错误): scanf : floating point formats not linked Abnormal program termination 即:struct student中float score字段在输入时, 它不 阅读全文
posted @ 2011-12-07 00:16 风行雪舞 阅读(444) 评论(0) 推荐(0)
单向链表操作详解(二)[The End]
摘要:/*接着讲(测试编译时,请把相应的函数及测试代码放到上一讲代码的相关地方):排序(选择、插入、冒泡)插入(有序)*//*===============================================作者:rerli时间:2003-12-08目的:学习单向链表的创建、修改、删除、 插入(无序、有序)、输出、 排序(选择、插入、冒泡)、反序说明:编译没有任何错误,能生成EXE文件。 这个程序TC2.0中编译生成的EXE文件, 在运行输入节点时出现以下错误(TC2.01中没有任何错误): scanf : floating point formats not linked Abnorm 阅读全文
posted @ 2011-12-07 00:14 风行雪舞 阅读(295) 评论(0) 推荐(0)
简单一道排序题,考倒多少读书人!
摘要:/*===================================================================作者:rerli时间:2003-12-17目的:从华为一道面试题浅谈计算机专业在校大学生该如何学习专业课程,信心百倍挑战就业!====================================================================*//* 简单一道排序题,考倒多少读书人! ——从华为一道面试题浅谈计算机专业在校大学生该如何学习专业课程,信心百倍挑战就业! 大学生早已不是天之骄子,仅仅是一个普通劳动者。网上一句顺口溜“本科生象条 阅读全文
posted @ 2011-12-07 00:12 风行雪舞 阅读(325) 评论(0) 推荐(0)
单链表
摘要:1、链接存储方法 链接方式存储的线性表简称为链表(Linked List)。 链表的具体存储表示为: ① 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的) ② 链表中结点的逻辑次序和物理次序不一定相同。为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)或链(link))注意: 链式存储是最常用的存储方式之一,它不仅可用来表示线性表,而且可用来表示各种非线性的数据结构。 2、链表的结点结构 ┌──┬──┐ │data│ne... 阅读全文
posted @ 2011-12-07 00:09 风行雪舞 阅读(219) 评论(0) 推荐(0)

无觅相关文章插件,快速提升流量