发博文
个人资料
懒吖吖
懒吖吖
  • 博客等级:
  • 博客积分:296
  • 博客访问:3,354
  • 关注人气:0
分类
评论
加载中…
留言
加载中…
友情链接
访客
加载中…
好友
加载中…
博文
(2012-05-15 13:35)
标签:

杂谈

1、增加restrict指针

C99中增加了公适用于指针的restrict类型修饰符,它是初始访问指针所指对象的惟一途径,因此只有借助restrict指针表达式才能访问对象。restrict指针指针主要用做函数变元

,或者指向由malloc()函数所分配的内存变量

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

分类: Lua

当在Lua和C之间交换数据时我们面临着两个问题:动态与静态类型系统的不匹配和自动与手动内存管理的不一致。
在Lua中,我们写下a[k]=v时,k和v可以有几种不同的类型(由于metatables的存在,a也可能有不同的类型)。如果我们想在C中提供类似的操作,无论怎样,操作表的函数(settable)必定有一个固定的类型。我们将需要几十个不同的函数来完成这一个的操作(三个参数的类型的每一种组合都需要一个函数)。
我们可以在C中声明一些union类型来解决这个问题,我们称之为lua_Value,它能够描述所有类型的Lua值。然后,我们就可以这样声明settable
void lua_settable (lua_Value a, lua_Value k, lua_Value v);
这个解决方案有两个缺点。第一,要将如此复杂

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2011-10-25 17:20)
标签:

杂谈

分类: Lua
一.Hello World

1.前言
  
  偶最近在学习Lua, 所以写出心得和大家共享, 争取一天写一篇, 嘿嘿.
  才开始学所以内容很浅, 希望大家包涵.
  Lua是一种完全免费的脚本语言, 可以和C/C++语言紧密结合,
  它的官方网站在http://www.lua.org. 在网站上可以下载到lua的源码, 没有可
  执行版本, 不过不用担心, 因为lua源码可以在任何一种C/C++的编译器上编译.
  
  如果要学习Lua, 官方网站上的Reference是必备的,上面有每个命令的用法,非常详细。
  参考手册 http://www.lua.org/manual/5.0/
  作者写的Programming in Lua http://www.lua.org/pil/
  
2.编译
  如果用的VC6, 可以下载所需的project文件,地址在
  http://sourceforge.net/project/showfiles.php?group_id=32250&package_id=115604
  VSNET2003可以下载这个sln文件http://home.comcast.net/~
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2011-10-25 17:19)
标签:

杂谈

分类: Lua
3 - 程序接口(API)

这个部分描述了 Lua 的 C API ,也就是宿主程序跟 Lua 通讯用的一组 C 函数。所有的 API 函数按相关的类型以及常量都声明在头文件 lua.h 中。 
虽然我们说的是“函数”,但一部分简单的 API 是以宏的形式提供的。所有的这些宏都只使用它们的参数一次(除了第一个参数,也就是 lua 状态机),因此你不需担心这些宏的展开会引起一些副作用。 
在所有的 C 库中,Lua API 函数都不去检查参数的有效性和坚固性。然而,你可以在编译 Lua 时加上打开一个宏开关来开启 luaconf.h 文件中的宏 luai_apicheck 以改变这个行为。 
3.1 - 堆栈
Lua 使用一个虚拟栈来和 C 传递值。栈上的的每个元素都是一个 Lua 值(nil,数字,字符串,等等)。 
无论何时 Lua 调用 C,被调用的函数都得到一个新的栈,这个栈独立于 C 函数本身的堆栈,也独立于以前的栈。(译注:在 C 函数里,用 Lua API 不能访问到 Lua 状态机中本次调用之外的堆栈中的数据)它里面包含了 Lua 传递给 C 函数的所有参数,而 C 函数则把要返回的结果也放入堆栈以返回给调用者(参见 lua_
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2011-10-25 17:17)
标签:

杂谈

分类: Lua
2 - 语言

这一节从词法、语法、句法上描述 Lua 。换句话说,这一节描述了哪些 token (符记)是有效的,它们如何被组合起来,这些组合方式有什么含义。 
关于语言的构成概念将用常见的扩展 BNF 表达式写出。也就是这个样子: {a} 意思是 0 或多个 a , [a] 意思是一个可选的 a 。非最终的符号会保留原来的样子,关键字则看起来像这样 kword ,其它最终的符号则写成 `=′ 。完整的 Lua 语法可以在本手册最后找到。 
2.1 - 词法约定
Lua 中用到的 名字(也称作 标识符)可以是任何非数字开头的字母、数字、下划线组成的字符串。这符合几乎所有编程语言中关于名字的定义。(字母的定义依赖于当前环境:系统环境中定义的字母表中的字母都可以被用于标识符。)标识符用来命名变量,或作为表的域名。 
下面的关键字是保留的,不能用作名字: 
     and       break     do        else      elseif
     end       false    
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2011-10-25 16:01)
标签:

杂谈

分类: Lua
1 - 介绍

Lua 是一个扩展式程序设计语言,它被设计成支持通用的过程式编程,并有相关数据描述的设施。 Lua 也能对面向对象编程,函数式编程,数据驱动式编程提供很好的支持。它可以作为一个强大、轻量的脚本语言,供任何需要的程序使用。 Lua 以一个用 clean C 写成的库形式提供。(所谓 Clean C ,指的 ANSI C 和 C++ 中共通的一个子集)

作为一个扩展式语言,Lua 没有 'main' 程序的概念:它只能 嵌入 一个宿主程序中工作,这个宿主程序被称作 embedding program
或简称为 host
。宿主程序可以通过调用函数执行一小段 Lua 代码,可以读写 Lua 变量,可以注入 C 函数让 Lua 代码调用。这些扩展的 C 函数,可以大大的扩展了 Lua 可以处理事务的领域,这样就可以订制出各种语言,而它们共享一个统一的句法格式的框架。 Lua 的官方发布版就包含了一个叫做 lua 的简单的宿主程序,它用 Lua 库提供了一个保证独立的 Lua 解释器。

Lua 是一个自由软件,它的使用许可决定了对它的使用过程一般没有任何保证。这份手册中描述的东西的实现,可以在 Lua 的官
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

VMWare提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式。

1.bridged(桥接模式)

  在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

一、CentOS安装TortoiseSVN
yum install -y subversion

 

二、SVN客户端命令

1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2011-04-21 13:54)
标签:

杂谈

分类: Python
 函数                    描述
int(x [,base ]) 将x转换为一个整数
long(x [,base ]) 将x转换为一个长整数
float(x ) 将x转换到一个浮点数
complex(real [,imag ]) 创建一个复数
str(x ) 将对象 x 转换为字符串
repr(x ) 将对象 x 转换为表达式字符串
eval_r(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s ) 将序列 s 转换为
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

分类: Python
def qsort(arr, low, high): 
    # 只有low小于high的时候才有必要排序 
    if low < high: 
        # 确定基准位置 
        pivotpos = partition(arr, low, high) 
        # 快速排序基准位置左边的元素 
        qsort(arr, low, pivotpos - 1) 
        # 快速排序基准位置右边的元素 
        qsort(arr, pivotpos + 1, high) 
  
def partition(arr, low, high): 
    '''确定基准位置,把比它小的移动到它的左边, 
    比它大的移到它的右边 
    '''
  
    pivotpos = low 
    pivot = arr[low] 
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有