I am writing a procedure Read_Sensor (Channel : in Natural; Value : out Integer; Status : in out Status_Record) and realised I do not fully understand the modes. Can I read an out parameter inside the procedure? What does the caller's variable contain if I return without assigning it? And is an in out record copied in and back, or passed by reference?
I come from C, where I would decide this myself with pointers, so I would like to know what Ada decides for me.




