自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

无香花自开

工作之余的笔记,方便查阅

  • 博客(32)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

转载 #pragma详解

在#Pragma是预处理指令它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器 或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #Pragma Para 其中Para 为参数,下面来看一些常用的参数:(1)messag

2014-12-26 18:17:56 1098

转载 vim 中Ctags的安装和使用

这两天看到网上有将vim 改造成功能强大的IDE的blog,突然心血来潮,亲身经历了一下。网友的帖子都不错,我这里只是将各种插件分开罗列,然后加上一些使用技巧。希望本文对你有所帮助!『插件介绍』Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。比

2014-12-26 08:57:18 458

转载 C++关键字explict的详解和使用

在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。explicit使用注意事项:    *     explicit 关键字只能用于类内部的构造函数声明上。    *     explicit 关键字作用于单个参数的构造函数。    *     在C++中,explicit关键字用

2014-12-26 08:27:53 2293

转载 Linux网络编程1

Linux网络编程--初等网络函数介绍(TCP)     Linux系统是通过提供套接字(socket)来进行网络编程的.网络程序通过socket和其它几个函数的调用,会返回一个 通讯的文件描述符,我们可以将这个描述符看成普通的文件的描述符来操作,这就是linux的设备无关性的好处.我们可以通过向描述符读写操作实现网络之间的数据交流. (一)socket --  i

2014-12-17 17:02:06 979

转载 shell题目

转自:http://blog.csdn.net/jianzhibeihang/article/details/49486941.for i in $(seq 0 9);do touch file$1;done 2.sort -k 1 -t ':' passwd | awk -F ':' '{ print $3":"$4":"$5}' 3.diff -B file1 file2

2014-12-16 18:12:14 474

转载 各大IT公司校园招聘程序猿笔试、面试题集锦

转自:http://blog.csdn.net/hackbuteer1/article/details/7959921百度一面1、给定一个字符串比如“abcdef”,要求写个函数编程“defabc”,位数是可变的。这个比较简单,我用的是strcpy和memcpy,然后他问有什么优化的办法,我就不知道了。2、socket过程就是socket的server和clie

2014-12-16 18:03:29 737

原创 C/C++string类的实现

#include #include #include #include using namespace std;int mystrlen(const char* p);char* mystrcpy(char* dest, const char* src);class MyString{private: char* m_pData;public: MyString(ch

2014-12-16 16:47:36 942

转载 C/C++语言文件操作之fgets

来说一说fgets(..)函数。    原型  char *  fgets(char * s, int n,FILE *stream);    参数:         s: 字符型指针,指向存储读入数据的缓冲区的地址。         n: 从流中读入n-1个字符         stream : 指向读取的流。   返回值:       

2014-12-14 22:53:59 7196

转载 C++类构造函数初始化列表

C++类构造函数初始化列表构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:class CExample {public:    int a;    float b;    //构造函数初始化列表    CExample(): a(0),b(8.8)    {}    //构造函数

2014-12-11 18:48:06 387

原创 2.C++ STL笔记: Bitset相关

#include#includeusing namespace std;int main(int argc, char* argv[]){ //定义bitset的五种方法 bitset b1; //定义一个32位的bitset bitset b2(8); //定义一个32位的bitset,并以8的二进制位初始化 bitset b3("1100"); //定义一个32位的bit

2014-12-11 10:15:04 528

原创 1.C++ STL笔记:Vector相关

Vectors 包含着一系列连续存储的元素,其行为和数组类似。访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线性时间复杂度。头文件  : #include定    义  : vector vt;                         vector vs;常用操作:     

2014-12-10 17:37:16 438

转载 c/c++ I/O库函数

转自:http://blog.csdn.net/isgray/article/details/6838341头文件:stdio.h函数列表: 文件操作remove删除文件rename重命名文件tmpfile打开一个临时文件tmpnam产生临时文件名 文件访

2014-12-10 10:44:51 694

转载 C/C++时间处理函数

C time库中提供了几个时间处理的函数:获取时间clock获取程序从开始到调用clock硬件滴答数difftime获取两个时间的差time获取当前时间转换时间mktime将tm结构转换成time_tasctime将tm结构转换成stringctime

2014-12-10 10:41:04 455

原创 Python单例的实现与分析

#!/usr/bin/env pythonclass Singleton(type): '''单例--用法:__metaclass__=Singleton''' def __init__(cls, name, bases, dic): '''初始化''' return super(Singleton, cls).__init__(name, b

2014-12-08 21:07:38 550

转载 18.lua学习笔记:系统库

Lua为了保证高度的可移植性,因此,它的标准库仅仅提供了非常少的功能,特别是和OS相关的库。但是Lua还提供了一些扩展库,比如Posix库等。对于文件操作而言,该库仅提供了os.rename函数和os.remove函数。        1. 日期和时间:    在Lua中,函数time和date提供了所有的日期和时间功能。    如果不带任何参数调用time函数,它将以数字形式返回

2014-12-07 16:56:07 474

转载 17.lua学习笔记:io库

I/O库为文件操作提供了两种不同的模型,简单模型和完整模型。简单模型假设一个当前输入文件和一个当前输出文件,他的I/O操作均作用于这些文件。完整模型则使用显式的文件句柄,并将所有的操作定义为文件句柄上的方法。    1. 简单模型:    I/O库会将进程标准输入输出作为其缺省的输入文件和输出文件。我们可以通过io.input(filename)和io.output(filename)这两

2014-12-07 16:54:50 522

转载 16.lua学习笔记:字符串库

1. 基础字符串函数:    字符串库中有一些函数非常简单,如:    1). string.len(s) 返回字符串s的长度;    2). string.rep(s,n) 返回字符串s重复n次的结果;    3). string.lower(s) 返回s的副本,其中所有的大写都被转换为了小写形式,其他字符不变;    4). string.upper(s) 和lower相反

2014-12-07 16:53:16 412

转载 15.lua学习笔记:table弱引用

Lua采用了基于垃圾收集的内存管理机制,因此对于程序员来说,在很多时候内存问题都将不再困扰他们。然而任何垃圾收集器都不是万能的,在有些特殊情况下,垃圾收集器是无法准确的判断是否应该将当前对象清理。这样就极有可能导致很多垃圾对象无法被释放。为了解决这一问题,就需要Lua的开发者予以一定程度上的配合。比如,当某个table对象被存放在容器中,而容器的外部不再有任何变量引用该对象,对于这样的对象,Lua

2014-12-07 16:51:43 480

转载 14.lua学习笔记:面向对象

Lua中的table就是一种对象,但是如果直接使用仍然会存在大量的问题,见如下代码:1 Account = {balance = 0}2 function Account.withdraw(v)3 Account.balance = Account.balance - v4 end5 --下面是测试调用函数6 Account.withdraw(100.00)

2014-12-05 00:53:13 453

转载 13.lua学习笔记:模块与包

从Lua 5.1开始,我们可以使用require和module函数来获取和创建Lua中的模块。从使用者的角度来看,一个模块就是一个程序库,可以通过require来加载,之后便得到一个类型为table的全局变量。此时的table就像名字空间一样,可以访问其中的函数和常量,如:1 require "mod"2 mod.foo()3 local m2 = require "mod2"4 l

2014-12-05 00:21:26 708

转载 12.lua学习笔记:环境

Lua将其所有的全局变量保存在一个常规的table中,这个table被称为“环境”。它被保存在全局变量_G中。    1. 全局变量声明:    Lua中的全局变量不需要声明就可以使用。尽管很方便,但是一旦出现笔误就会造成难以发现的错误。我们可以通过给_G表加元表的方式来保护全局变量的读取和设置,这样就能降低这种笔误问题的发生几率了。见如下示例代码: 1 --该table用于存

2014-12-04 23:08:12 480

转载 11.lua学习笔记:元表与元方法

Lua中提供的元表是用于帮助Lua数据变量完成某些非预定义功能的个性化行为,如两个table的相加。假设a和b都是table,通过元表可以定义如何计算表达式a+b。当Lua试图将两个table相加时,它会先检查两者之一是否有元表,然后检查该元表中是否存在__add字段,如果有,就调用该字段对应的值。这个值就是所谓的“元方法”,这个函数用于计算table的和。    Lua中每个值都有一个元表。

2014-12-04 21:03:56 441

转载 10.lua学习笔记:数据持久化

1. 数据文件:    我们可以利用Lua中table的构造式来定义一种文件格式,即文件中的数据是table构造并初始化的代码,这种方式对于Lua程序而言是非常方便和清晰的,如:    Entry { "Stephen Liu", "Male", "Programmer", "BS" }    Entry { "Jerry Tian", "Male", "Programmer", "B

2014-12-04 20:19:18 421

转载 9.lua学习笔记:数据结构

Lua中的table不是一种简单的数据结构,它可以作为其它数据结构的基础。如数组、记录、线性表、队列和集合等,在Lua中都可以通过table来表示。           1. 数组:    使用整数来索引table即可在Lua中实现数组。因此,Lua中的数组没有固定的大小,如:1 a = {}2 for i = 1, 1000 do3 a[i] = 04 end

2014-12-04 00:25:41 429

原创 8.lua学习笔记:协程

1.协程基础:    lua把所有协程相关的函数都放在coroutine的table中,create接受一个函数参数用于创建协程,这个参数就是协程的执行过程,每个协程有四种状态:suspended(挂起),running(运行),dead(死亡,执行完),normal(正常)    co = coroutine.create( function () print("hello") en

2014-12-03 22:49:46 509

转载 7.lua学习笔记:编译、执行与错误

1. 编译:    Lua中提供了dofile函数,它是一种内置的操作,用于运行Lua代码块。但实际上dofile只是一个辅助函数,loadfile才是真正的核心函数。相比于dofile,loadfile只是从指定的文件中加载Lua代码块,然后编译这段代码块,如果有编译错误,就返回nil,同时给出错误信息,但是在编译成功后并不真正的执行这段代码块。因此,我们可以将dofile实现为:1

2014-12-03 20:56:39 479

转载 6.lua学习笔记:迭代器和for泛型

1. 迭代器与Closure:    在Lua中,迭代器通常为函数,每调用一次函数,即返回集合中的“下一个”元素。每个迭代器都需要在每次成功调用之间保持一些状态,这样才能知道它所在的位置和下一次遍历时的位置。从这一点看,Lua中closure机制为此问题提供了语言上的保障,见如下示例: 1 function values(t) 2 local i = 0 3 r

2014-12-03 16:48:23 454

原创 5.lua学习笔记:函数

1.多重赋值:    在lua中可以多重赋值,和Python类似:        a, b = 1, 2    这样就能在函数中返回多个值了,并且lua的多重赋值更加智能,当值得个数多于变量的个数时,多余的值将被舍弃;    当变量的个数多于值得个数时,多余的变量将被赋值为nil;Python中的多重赋值需要变量和值得个数对应2.变长参数:    lua中可以编写接

2014-12-02 23:56:15 505

原创 4.lua学习笔记:控制语句

1. if  ...  then  ... elseif  ...  then ...  else .....   end例如:    local  tmp = 0    if tmp > 18  then        print("已成年")    elseif tmp == 18 then        print("即将成年")    else       

2014-12-02 00:17:45 507

原创 3.lua学习笔记:类型与值

lua内置8种类型:nil,  boolean,  number,  string,  userdata,   function,   thread,   table nil:    nil只与nil相等,所有全局变量的默认值为nil,将nil赋值给变量相当于将变量删除boolean:    boolean 只有两值,true, false;在条件判断中除了fals

2014-12-01 23:01:56 577

原创 2.lua学习笔记:调试、运行

一:运行方式    1.在命令行中输入lua,进入lua解释器,输入命令这样就能和运行Python解释器一样操作    2.编写lua脚本,在命令行中输入lua  tmp.lua即可运行tmp.lua脚本    3.在lua解释器中输入dofile("tmp.lua"),也能运行tmp.lua脚本,同时也导入了tmp.lua文件内的函数    4.在命令行中输入lua -i tmp

2014-12-01 18:30:52 658

原创 1.lua学习笔记:环境配置

1.下载lua工程,下载地址为http://www.lua.org/ftp/我这里下载的是lua-5.2.32.查看doc/readme.html,发现需要编译三部分,lua库、解释器、编译器3.编写bat脚本rem "build lua environment..."echo "build lua dynamic library..."cd ./bincl /O2

2014-12-01 16:35:30 502

30天自制操作系统-川合秀实.epub

30天自制操作系统,高清epub格式。 “这本书的定位是零基础的读者,作者甚至找了中学生来试读,语言通俗易懂,轻松幽默。作为译者,我很喜欢这样的风格,因为可以把很多好玩的流行词汇代入进去,不会破坏原书的意境,还能让大家看起来更有意思。从技术角度来看,这本书并没有过多地解释技术细节。作者认为,自制操作系统最终的目的还是为了好玩。因此,想从这本书系统学习计算机原理、汇编语言、C语言等知识是不现实的,但你一定能够获得另一种完全不同的体验” 摘录来自: 川合秀实. “30天自制操作系统 (图灵程序设计丛书)。” Apple Books.

2018-11-12

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除