关闭

[语法比较][指针/引用]Lava和C/C++语法比较

693人阅读 评论(0) 收藏 举报

这里的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是需要大幅度改代码的..如果代码里面包含指针/引用/结构体

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15120次
    • 积分:218
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:5篇
    • 译文:0篇
    • 评论:0条