What is the use of `ifndef? Why it is always used with `define?

What is the use of ifndef? Why it is always used with define?

In reply to VigneshPN:

I don’t understand your question. Conditional compile directive (ifdef and ifndef) can only test for the existence or non-existance of a `define macro. The two forms just reverse the polarity of the two branches.

The question isn’t clear.

I think he is referring to include_guards… If so, please refer to this thread ::
https://verificationacademy.com/forums/ovm/why-ifndef-and-define-are-used-together