Eljárások
A C-- eljárásai nagyon hasonlóak a C-beli eljárásokhoz, azonban van néhány különbség:
- Egy C-- beli eljárás nem csak tetszőleges számú paramétert fogadhat, de tetszőleges számú eredménnyel térhet vissza.
- Egy eljárást nem lehet kifejezésen belülről meghívni.
- Az eljárás hívások nem típusellenőrzöttek. Az aktuális paraméterek száma és típusa a híváskor meg kell hogy egyezzen az eljárás definíciójában szereplő formális paraméterekével. Bármilyen eltérés futás-idejű hibát eredményez.
Szintaxis
Egy eljárás definíciója a következő szintaxist követi:
procedure => [conv] name ( [formals] ) { body }
formals => formal {, formal} [,]
formal => [kind] [invariant] type name
Példa eljárásra:
goo(bits32 y) {
bits32 x;
x = y + 1;
jump bar(x);
}