CALL 宣告

COBOL 可以使用靜態連結進行以下語句。對於編譯時已知的所有外部符號,GnuCOBOL 預設使用動態連結,即使符號是文字:

CALL "subprogram" USING a b c *> run a (possibly static linked) sub program
                              *> passing three fields

CALL some-prog USING a b c    *> some-prog is a PIC X item and can be changed
                              *> at run-time to do a dynamic lookup

此語句強制編譯時連結編輯解析。 (非標準,語法擴充套件)

CALL STATIC "subprogram" USING a b c

COBOL 中的欄位可以傳遞 BY REFERENCE(預設情況下,直到覆蓋 - 覆蓋是從左到右的順序),BY CONTENT(副本通過參考傳遞),或者在某些情況下直接傳遞給 BY VALUE

CALL "calculation" USING BY REFERENCE a BY VALUE b BY CONTENT c RETURNING d
    ON EXCEPTION DISPLAY 'No linkage to "calculation"' UPON SYSERR
END-CALL 

COBOL 被設計為 BY REFERENCE 語言,因此使用 BY VALUE 可能會出現問題。例如,字面數字沒有顯式型別,COBOL 規範沒有明確的型別提升規則。因此,開發人員不得不擔心使用 BY VALUE 文字進行呼叫框架設定。

有關詳細資訊,請參見 http://open-cobol.sourceforge.net/faq/index.html#call