回 帖 发 新 帖 刷新版面

主题:[讨论]Def function gosub sub四种语句的对比

谁能整理一下Def,function,gosub,sub四种语句的区别对比?
[em1][em2][em3][em4][em5][em6][em7][em8][em9][em10][em11][em12][em13][em14]

回复列表 (共6个回复)

沙发

它们最大的不同就是拼写不同

板凳

def  可以定义简单的系统级函数,函数名必须以FN开头,
Function 可以定义更多功能更详细的函数操作
gosub 只能调用同等级的行标号的代码,而且变量范围很有可能会引起误用等.
sub 子程是独立的一个功能模块,使结构化更明晰.

3 楼

function name(参数)      end function
   函数和def fn相同,但在哪里都能用
   name=算式   可以将一个结果调回上级程序
   变量=name   可以接受函数掉回的值
   exit function 可以中途退出,def,sub都可以

def有四种:
    def fn???(pars)=算式           单行函数
    def fn???(pars)      end def   多行函数(用法同function)
    def seg=&hxxxx                 设置内存读写当前段
    defxxx a-c                     a-c开头的变量默认为xxx(简写)类型,可以简化程序
都只能在定义后使用

sub和function用法相同,但无法获得数值

function和sub都可以有自己的私变量

gosub的用发:
gosub name         非常单薄的,也是最快的,所有上面的东西都没有!!!
.
.
.
name:
  ...
return

4 楼

如果这个程序非常占CPU,建议最好用gosub/def
如果想写一个子程序集使自己能方便,或代码太多,那么使用function/sub最好

5 楼

有没有谁能谈谈它们的全局变量和局部变量的值的变化?多谢啦!

6 楼

DFE FN 更贴切“数学函数”这个概念,类似COS,SIN这种,里面放不了几行代码,亦不好展开程序。
FUNCTION则已经是一种过程的概念了,里面你可以放任何东西,可以进行数学计算,统计,读文件,甚至是移动屏幕上的小方块(C语言里面就一律统称为函数,不管你啥子程序,过程什么的)。和SUB不同的是,它本身可以通过赋值返回一个值--其实如果你需要SUB返回值,也是可以做到的,而且也并不难。GOSUB纯粹就是BASIC还没诞生SUB语句时的一种汇编式的句式,如果你不需要与其配对的RETURN帮你自动返回调用点,那么用GOTO也是一样的。

我来回复

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