这里的Lava指的是Lava3.4版本的.
Lava中的惟一的指针类型addr..相当于C/C++中的void *指针类型
Lava中取值符号有3大类..
第一类是取8位的大小的的值..如(char*)或*
第二类是取16位大小的值..如(int*)
第三类是取32位大小的值..如(long*)或(float*)
C/C++中只有惟一个取值符号...那就是*
依靠指针类型来判断到底应该取几位...
C/C++中指针类型有N种..比如int*,long*,char*...除了内置的指针类型..还可以为结构体定义指针类型..
以下是用Lava代码写的用来测试取值符号的例子:
//this code is only for Lava3
//test for per&&reference of Lava3
void main(){
char char8; //无符号8位整型
int int16; long long32; //16和32位有符号整型
float float32; //32位IEEE浮点数
addr p; //无类型指针
char8=0xFF;int16=-0x7FFF;long32=0x7FFFFFFF;
float32=0.1;
p=&char8;
printf("*p=%d/n",*p);
printf("(char*)p=%d/n",(char *)p);
p=&int16;
printf("(int*)p=%d/n",(int*)p);
p=&long32;
printf("(long*)p=%d/n",(long*) p);
p=&float32;
printf("(float*)p=%f",(long *)p);
getchar();
}
还有根据测试..Lava不支持独立引用..只支持返回引用..(虽然说明书的例子用的是独立引用..)
根据以前的测试..Lava的结构体变量..跟C/C++的结构体变量也存在不同..
Lava的结构体变量相当于C/C++中的结构体指针..
声明一个Lava的结构体变量如struct structtype s;..相当于 C/C++中的中的结构体指针,如structtype *s=new structtype;
Lava中结构体变量可以直接用.号来指向成员变量..而C/C++中结构体指针需要使用->来指向成员变量..
....所以移植c/c++代码为Lava是需要大幅度改代码的..如果代码里面包含指针/引用/结构体