Unterschiede zwischen Hauptprogrammen und aufgerufenen Programmen
Program custProcessing1 type basicProgram (customerNum INT)
// required main() function
function main()
// get the correct customer name
// based on the customer number passed
customerName = getCustName(customerNum);
...
end
// another function
Function getCustName(customerNum INT) returns (CHAR(25))
...
end
end
program custProcessing1 type basicProgram (customerNum INT)
program custProcessing1 type basicProgram ()
program custProcessing1 type basicProgram
customerName CHAR(30)
...
call custProcessing1(customerName);
program custProcessing1 type basicProgram (custName CHAR(80) inout)
Da EGL einen Zeiger auf die Variable customerName übergibt, hat die Variable custName eine tatsächliche Länge von nur 30 Zeichen. Falls Sie Daten an die Positionen 31 bis 80 der Variablen custName schreiben (was im Programm zulässig ist), wird möglicherweise wahlfreier Speicher überschrieben. Der EGL-Debugger gibt übrigens eine Warnung aus, wenn ein solches nicht definiertes Verhalten stattzufinden droht.
Weitere Informationen zu aufgerufenen Programmen finden Sie unter Übertragung der Steuerung zwischen Programmen.