Static 声明变量有什么好处?不要说在整个程序运行期间均有效,值一直存在,好处是什么?举个例子

解决方案 »

  1.   

    Static 语句
    在过程级别中使用,用于声明变量并分配存储空间。在整个代码运行期间都能保留使用 Static 语句声明的变量的值。
      

  2.   


    例子  循环运行几次 Add这个过程 就知道static 是干什么的了
    private z as long sub add()
    static x as long
    dim y as long 
    x=x+1
    y=y+1
    z=z+1
    ens sub只要不在当前过程 Static变量就无效 偶决的唯一的好处是  全局变量太多了 看着眼花  所以呢 分散一些到过程中  挖哈哈
      

  3.   

    举两个例子吧:
    先看第一个例子
    sub get_time()
        static iTimes as integer
        iTimes=iTimes+1
        select case iTimes
            case 1
            case 2
            ...
        end select
    end syb
    在这个例子中,每调用一次get_time,iTimes变量就会自动加1,可能LZ说为什么不使模块级变量呢?其实,get_time中的iTimes在此跟模块级变量差不多,不过,它增强了代码的可读性。当一个模块有10多个代码时,如果把相关的变量都申明为模块级变量,那会让人头晕的。再看一个例子:
    function get_data() as byte()
        static m_data() as byte
        redim m_data(9)
        ...
        get_data=m_data
    end function
    假如m_data不为static数组,那么函数运行结束后,m_data会被VB自动释放,从而导致调用者访问错误。当然,有时m_data内存虽然被释放了,但由于没有被其它进程或线程所使用,同时它又处于当前运行代码所在的同一个内存页里,数据仍然能够访问,但是,这种访问是不安全的。
    当然还有N多用法,LZ多练练就知道了。