回 帖 发 新 帖 刷新版面

主题:随机函数

输出是0-15之间的数

FUNCTION rand
  DEF SEG = &H40
  rand = (PEEK(&H6C) XOR &H55) AND &HF
  FOR t = 1 TO 100000: NEXT t
END FUNCTION

此函数纯属虚构......

回复列表 (共8个回复)

沙发

有这必要吗?
用完段地址后请取消定位
def seg

板凳

加循环是干嘛的?

3 楼

[quote]有这必要吗?
用完段地址后请取消定位
def seg
[/quote]

这个函数是胡乱搞的, 纯属虚构 - -b

def seg个人认为没有作用, 我没加, 至少我没看到有任何的后果.

PS:如果两次调用的时间差太短, 返回值是一样的, 所以我加了循环.

4 楼

[quote]def seg个人认为没有作用, 我没加, 至少我没看到有任何的后果.[/quote]
这跟你吃完香蕉没有把香蕉皮扔进垃圾桶是一样道理的,你不一定能看得到后果.

[quote]PS:如果两次调用的时间差太短, 返回值是一样的, 所以我加了循环.[/quote]
舍近求远.

5 楼

[quote]这跟你吃完香蕉没有把香蕉皮扔进垃圾桶是一样道理的,你不一定能看得到后果.[/quote]

QB在对变量, 数组操作的时候会自动DEF SEG的

我承认我是舍近求远, 此函数纯属虚构

6 楼

[quote]QB在对变量,数组操作的时候会自动DEF SEG的[/quote]
def seg是对内存操作的段地址的指定,
与变量和数组操作无关.

7 楼

[quote][quote]QB在对变量,数组操作的时候会自动DEF SEG的[/quote]
def seg是对内存操作的段地址的指定,
与变量和数组操作无关.[/quote]

QB在操作变量和数组时, 总是先DEF SEG到那个变量/数组的段地址.

8 楼

[quote]QB在操作变量和数组时,总是先DEF SEG到那个变量/数组的段地址.[/quote]
非也,你可以先简单的看一下汇编,再看一下编译原理(我很遗憾没看过)
对于变量的地址,编译环境有内部的地址识别,
与自定义段地址def seg无关,可以举例看看:

def seg = &HB800
   a%=17
   b=varptr(a%)
   poke b,68
def seg

print a%

def seg = varseg(a%)
   poke b,68
def seg

print a%

我来回复

您尚未登录,请登录后再回复。点此登录或注册