找回密码
 点一下
楼主: 麦德三世

1.5.0 “指针归来”函数/结构/数组引用的语法教程

[复制链接]
发表于 2012-6-24 14:39:32 | 显示全部楼层

回 麦德三世 的帖子

麦德三世:多维数组和数组引用数组其实还是不一样的。 (2012-06-24 14:22)
  多维数组不是在高维中包含多个下一维吗?
     N个第一维构成第二维,我书上就是这样写得(Pascal)
    不过确实还是不同,因为这不能叫多维数组,应该叫一维加二维加...数组
回复

使用道具 举报

 楼主| 发表于 2012-6-24 14:39:51 | 显示全部楼层

回 疯人¢衰人 的帖子

疯人¢衰人:typedef int[2] int2;
typedef arrayref<int2>[2] int22;
typedef arrayref<int22>[2] int222;
....... (2012-06-24 14:36)
我13楼的例子已经把所有这些都包括进去了。
回复

使用道具 举报

 楼主| 发表于 2012-6-24 14:40:51 | 显示全部楼层

回 疯人¢衰人 的帖子

疯人¢衰人:写的时候没注意之前的帖子……

呃,自己用了但是还没发现 (2012-06-24 14:31)
其实这显然是galaxy编译器的一个bug,是编译器疏忽了。暴雪显然是不希望开放全局数组引用和全局结构引用的。

不过我宁可它不要修复,否则很多有趣的东西都会消失了。
回复

使用道具 举报

 楼主| 发表于 2012-6-24 15:17:33 | 显示全部楼层

回 lia77593 的帖子

lia77593:

  多维数组不是在高维中包含多个下一维吗?
     N个第一维构成第二维,我书上就是这样写得(Pascal)
    不过确实还是不同,因为这不能叫多维数组,应该叫一维加二维加...数组
13楼的代码非常明确地体现了它们的异同,对于数组引用数组,你可以同时操作它的两个层级。

arr[0]=testInt2;

arr[1]=testArray;

arr[0][0]=1;

但是如果这是一个多维数组,

arr[0]=testInt2;

这句就会出错。只能

arr[0][0]=1;
回复

使用道具 举报

发表于 2012-6-24 16:01:37 | 显示全部楼层

回 麦德三世 的帖子

麦德三世:13楼的代码非常明确地体现了它们的异同,对于数组引用数组,你可以同时操作它的两个层级。

arr[0]=testInt2;

....... (2012-06-24 15:17)
  恩恩。
   不过我从来不指望暴雪能整出真正的指针来,做到这样已经不错了,毕竟人家是写游戏的,不是写编译器,从语法来讲,这跟c实在没多大区别,可跟C的功能.....
    其实已经很不错了,比war3的jass强大了500倍......
回复

使用道具 举报

发表于 2012-6-25 04:35:36 | 显示全部楼层
真奇葩,blz为什么不用些符合地球人习惯的语法呢
回复

使用道具 举报

发表于 2012-6-25 07:54:21 | 显示全部楼层

回 麦德三世 的帖子

麦德三世:其实这显然是galaxy编译器的一个bug,是编译器疏忽了。暴雪显然是不希望开放全局数组引用和全局结构引用的。

不过我宁可它不要修复,否则很多有趣的东西都会消失了。 (2012-06-24 14:40)
如果没有全局,那么数组引用的意义就差很多了,只能传进不能传出函数的引用使用起来很麻烦。
话说,为什么会不开放全局呢,哪里会出现什么危害性?
回复

使用道具 举报

 楼主| 发表于 2012-6-25 09:19:52 | 显示全部楼层
所以我现在就打算给blz写信要求保留这个bug。拉几个老外一道


不过函数引用原本就是可以全局的。只是另外两个需要放进全局变量里。
回复

使用道具 举报

发表于 2012-6-25 10:29:08 | 显示全部楼层

回 麦德三世 的帖子

麦德三世:所以我现在就打算给blz写信要求保留这个bug。拉几个老外一道


不过函数引用原本就是可以全局的。只是另外两个需要放进全局变量里。 (2012-06-25 09:19)
不允许声明单个全局变量,但是可以声明全局数组
如果可能的话,还是都放开最好!
回复

使用道具 举报

发表于 2012-6-25 13:18:18 | 显示全部楼层

回 疯人¢衰人 的帖子

疯人¢衰人:不允许声明单个全局变量,但是可以声明全局数组
如果可能的话,还是都放开最好!
(2012-06-25 10:29)
  我总觉得是技术问题 ........................
回复

使用道具 举报

 楼主| 发表于 2012-6-25 15:33:36 | 显示全部楼层
这里应该还是安全性方面的顾虑吧。毕竟以前war3的return bug造就了许多安全问题。
回复

使用道具 举报

发表于 2012-6-25 18:36:48 | 显示全部楼层

回 麦德三世 的帖子

麦德三世:这里应该还是安全性方面的顾虑吧。毕竟以前war3的return bug造就了许多安全问题。 (2012-06-25 15:33)
同时也造就了丰富多彩的WAR3地图
很难想象一开始就没有UB和RB的WE世界
回复

使用道具 举报

发表于 2012-6-26 05:34:00 | 显示全部楼层
.来支持下麦兜,呀呀呀我最恨数学了!文理精通大才女我好羡慕啊!
回复

使用道具 举报

发表于 2012-6-27 21:44:37 | 显示全部楼层
我看到了“面向对象”,如果不出所料的话,头目想必会有所动作吧。
回复

使用道具 举报

发表于 2012-6-27 22:28:30 | 显示全部楼层
我也默默的马克留着以后看, 看了标题我就知道现在的我肯定看不明白了。。。。
回复

使用道具 举报

发表于 2012-8-11 11:27:45 | 显示全部楼层
支持函数重载和类的定义吗?
回复

使用道具 举报

 楼主| 发表于 2012-8-11 11:29:47 | 显示全部楼层
你C语言里有这个东西就怪了。C不是C++
回复

使用道具 举报

发表于 2012-8-11 11:35:41 | 显示全部楼层

回 麦德三世 的帖子

麦德三世:你C语言里有这个东西就怪了。C不是C++&#160;(2012-08-11 11:29)&#160;
习惯类的怎么过啊
回复

使用道具 举报

发表于 2013-10-4 05:03:32 | 显示全部楼层
先mark下
回复

使用道具 举报

发表于 2015-4-11 22:17:19 | 显示全部楼层
这货的确有用,谢头目了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-24 21:39 , Processed in 0.119898 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表