What is forward reference in C?

后端 未结 6 1860

What is forward reference in C with respect to pointers?

Can I get an example?

6条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-14 13:41

    Forward reference is when you declare a type but do not define it.

    It allows you to use the type by pointer (or reference for C++) but you cannot declare a variable.

    This is a way to say to the compiler that something exists

    Say that you have a Plop structure defined in Plop.h:

    struct Plop
    {
       int n;
       float f;
    };
    

    Now you want to add some utility functions that works with that struct. You create another file PlopUtils.h (let's say you can't change Plop.h):

    struct Plop; // Instead of including Plop.h, just use a forward declaration to speed up compile time
    
    void doSomething(Plop* plop);
    void doNothing(Plop* plop);
    

    Now when you implement those function, you will need the structure definition, so you need to include the Plop.h file in your PlopUtils.cpp:

    #include "PlopUtils.h"
    #include "Plop.h" // now we need to include the header in order to work with the type
    
    void doSomething(Plop* plop)
    {
       plop->n ...
    }
    
    void doNothing(Plop* plop);
    {
       plop->f ...
    }
    

提交回复
热议问题