CODESYS - Difference between pointer and reference
ฝัง
- เผยแพร่เมื่อ 9 ก.ย. 2024
- - A pointer from type T points to an object from type T (T = basic or user-defined datatype)
- A pointer holds the address of the object that is pointing to
- The fundamental operation with a pointer is called "dereferencing". The dereferencing in CODESYS is done with the symbol "^"
- A pointer can point to a different object at a different time
- Before dereferencing a pointer and assigning a value to it, you should always check if a pointer points to an object. (pointer = 0)?
- A reference from type T "points" to an object from type T (T = basic or user-defined datatype)
- A reference must be initialized with an object and its "pointing" to this object through the program
- A reference must not be dereferenced as a pointer and it can be used with the same syntax as the object
- Another word for reference is "Alias" (another name) a pseudonym for the object
- The reference doesn't have its own address and a pointer does. The address of the reference is the same as the "pointed" object.
- There is no 0 reference, so you should never call the reference if it's not initialized
- You should check if you have a valid reference with the CODESYS integrated keyword "__ISVALIDREF"
The best use of pointers and references is when you want to pass or return an object of some type to a function or function block by "reference" because the object is either too big or you want to manipulate the passed object within the function/function block. Make sure that, the reader of your code knows that you're going to change the value of the object within the function/function block if this is what you intend to do when you pass it as an argument.
Great content. Thanks!
More videos please :)
wow I finally get it.Thanks a lot
: REFERENCE TO
Example
A : REFERENCE TO DUT;
B : DUT;
C : DUT;
A REF= B; // corresponds to A := ADR(B);
A := C; // corresponds to A^ := C;