?? a980208.gb_
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>初級篇: 哪一種參數傳遞的方式比較節省時間?</TITLE>
<META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
<META NAME="Author" CONTENT="KJ Wang">
</HEAD>
<BODY TEXT="#202020" BGCOLOR="#FFFFFF" LINK="#FF0000" VLINK="#000080" ALINK="#FF0000">
<H2 ALIGN=CENTER><A HREF="vbba.htm">新觀念的 VB5 教本</A></H2>
<H3 ALIGN=CENTER><A HREF="../vbweeks.htm">每周一問</A>: 挑戰您的 VB 功力 (初級篇, 98/02/08)</H3>
<H2>
<HR WIDTH="100%"></H2>
<TABLE WIDTH="100%" >
<TR VALIGN=TOP>
<TD NOWRAP>Q:</TD>
<TD>同樣的副程式, 只有參數的定義不相同, 問呼叫時, 何者比較節省呼叫時間?
<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=4 WIDTH="80%" >
<TR VALIGN=TOP>
<TD>
<PRE><FONT SIZE=+1>Sub SubX( <FONT COLOR="#FF0000">ByVal S As String</FONT> )
...
End Sub</FONT></PRE>
</TD>
<TD>
<PRE><FONT SIZE=+1>Sub SubX( <FONT COLOR="#FF0000">S As String</FONT> )
...
End Sub</FONT></PRE>
</TD>
</TR>
</TABLE>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>A:</TD>
<TD>Sub SubX(<FONT COLOR="#FF0000"> S As String </FONT>)<BR>
..<BR>
End Sub
<P>的參數傳遞方式等於 Sub SubX(<FONT COLOR="#FF0000"> <B>ByRef</B> S As
String </FONT>) ... End Sub, 在術語上又稱為「<FONT COLOR="#0000FF">傳址</FONT>」呼叫,
而對 Windows 而言, 任何資料的位址都占用 32-bits, 所以不管字串 S 的長度為何,
此一傳遞參數的方式永遠都是傳遞 4 bytes。</P>
<P>Sub SubX( <FONT COLOR="#FF0000"><B>ByVal </B>S As String</FONT> ) 稱為「<FONT COLOR="#0000FF">傳值</FONT>」呼叫,
對 VB 而言, 是把 S 字串的所有字元復制一份到副程式 SubX 之中, 所以當 S
越長, 所傳遞的資料就越長。</P>
<P>經過以上的比較, 應該不難瞭解速度上的差異了吧!</P>
</TD>
</TR>
</TABLE>
<P>
<HR WIDTH="100%"></P>
</BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -