[转载] 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,否则
相关文档:
-------------------------------------------
Linuxmine收集整理 作者:linux宝库 (http://www.linuxmine.com) 时间:2006-10-11
-------------------------------------------
C 是所有版本的UNIX上的系统语言.
C 在过去 ......
用此法前确保你的C源代码是无错的~~
解决办法:
C:
在主函数后加getch()或ch=getch(); (让程序等待你按下任意键,再继续执行下面的语句)
C++:
1.包含头文件时: #include <stdlib.h>/*header file,因为在stdlib.h头文件中定义了system()函数*/
2.在最后一句加上:system("PAUSE ......
1、Java JDK的安装
Eclipse是一款跨平台的工具,只需要基本的java虚拟机就可以运行。
安装Java
SDK很简单。到http://java.sun.com上找到适合你的操作系统的Java
JDK安装程序,下载之并运行,Java SDK就会安装到你的系统中。
注意,更高版本的Eclipse需要更高版本的Java JDK。
2、Eclipse及CDT的安装
到Eclipse的官方 ......
/*****************test.c****************/
#include <stdio.h>
#include <stdlib.h>
#include "addr.h"
int main()
{
int flag=1;
while(flag)
{
switch(choose_menu())
{
case 1:add_person();break;
case 2:show_person_in ......
在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是:
1、基于C的文件操作;
2、基于C++的文件操作;
3、基于WINAPI的文件操作;
4、基于BCB库的文件操作;
5、特殊文件的操作。
壹、基于C的文件操作
在ANSI C中, ......