[转载] Lua 中与 C 不同的设计
尽管 Lua 的关键词的设计,运行符的设计,语法的设计等方面与 C 很相似,但我们还要注意其明显不同的地方。
条件判断时的真假条件
Lua 中所有的值都可以作为条件。在控制结构的条件中除了 false 和 nil 为假,其他值都为真。所以 Lua 认为 0 和 空串 都是真。
而 C 中,认为只要是在内存中表现为 0 值的符号都为假。
字符串
Lua 中字符串的定义是 字符的序列。lua 的字符串可以包含任何数值字符,包括嵌入的 0。这意味着你可以存储任意的二进制数据在一个字符串里。Lua 本身有相应的函数来处理这样的字符串。
而 C 语言中,虽然也可以在一个字符串中存放 0,但其字符串处理函数不能正确处理放在中间的零值,因为 C 中的算法不是用长度来做判断,而是以遇到第一个零值来判断的。
转义字符:
\a bell \b back space -- 后退
\f form feed -- 换页 \n newline -- 换行
\r carriage return -- 回车 \t horizontal tab -- 制表
\v vertical tab \\ backslash -- "\"
\" double quote -- 双引号 \' single quote -- 单引号
\[ left square bracket -- 左中括号 \] right square bracket -- 右中括号
还可以用[[…]]表示字符串,这种形式的字符串可以包含多行可以嵌套且不会解释转义序列。
运行时,Lua会自动在string和number之间自动进行类型转换。
关系运算符
Lua 中的不等号是 ~=,
而 C 中的不等号是 !=。
逻辑运算符
Lua 中的逻辑运算符是 and, or, not,而 C 中的逻辑运算符是 &&, ||, !。而且它们的用法很大的不一样,Lua 的逻辑运算符的用法显得有点“小技巧”。
Lua 逻辑运算符认为 false 和 nil 是假(false),其他为真,0也是true。
and 和 or 的运算结果不是 true 和 false,而是和它的两个操作数相关。
not 的结果一直返回 false 或者 true。
a and b -- 如果a为false,则返回a,否则返回b
a or b -- 如果a为true,则返回a,否则
相关文档:
GPIO(General Purpose Input/Output的缩写)就是芯片的引脚,引脚是可编程的可对引脚的工作模式进行设置:输入模式(检测输入信号),输出模式(输出0或1),高阻状态(常用于AD转换),还有禁止或允许上内部下拉电阻(上拉:管脚通过电阻接高电平,下拉:管脚通过电阻接地,也可以外部接上拉或下拉电阻),还有管脚复用等功能,即 ......
1、快速初始化
char *str = new [size];
str[0]='\0';
2、memcpy的妙用
试题6:已知WAV文件格式如下表,打开一个WAV文件,以适当的数据结构组织WAV文件头并解析WAV格式的各项信息。
WAVE文件格式说明表
偏移地址 字节数 数据类型 内 容
文件头
00H 4 Char "RIFF"标志
......
C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。
B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装O ......
在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是:
1、基于C的文件操作;
2、基于C++的文件操作;
3、基于WINAPI的文件操作;
4、基于BCB库的文件操作;
5、特殊文件的操作。
壹、基于C的文件操作
在ANSI C中, ......