// プロトタイプ宣言
prototype FuncD(BYREF STRING);
prototype FuncE(STRING);
// グローバル変数
STRING szStr[64];
// 関数の実体
function FuncD(szString)
begin
// szStringはアドレスを持っているため、
// そのアドレスのあるところにszStringを書き込むので、
// 関数外部でも"123"となる。 szString="123";
end;
function FuncE(szString)
begin
// 参照でないので、この関数内部でのみszStringは"AAA"となる。 szString="AAA";
end;
// 参照渡しのテスト
function a()
STRING szStr;
begin
// ... 省略 ...
szStr="123456";
FuncD(szStr);
MessageBox(szStr,0);// szStrは"123"になります。
FuncE(szStr);
MessageBox(szStr,0);// szStrは"123"のままです。
// ... 省略 ...
end;
|