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.

ความคิดเห็น • 4

  • @romicabeschea9488
    @romicabeschea9488 ปีที่แล้ว

    Great content. Thanks!

  • @xCyberBiznes
    @xCyberBiznes 2 ปีที่แล้ว +1

    More videos please :)

  • @I_vantheory
    @I_vantheory ปีที่แล้ว

    wow I finally get it.Thanks a lot

  • @BoxerliMurat
    @BoxerliMurat 3 ปีที่แล้ว +2

    : 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;