Macros are a reasonable way to solve this problem. A good example is BSD&#x27;s sys&#x2F;queue.h:<p><a href="http:&#x2F;&#x2F;cvsweb.openbsd.org&#x2F;cgi-bin&#x2F;cvsweb&#x2F;src&#x2F;sys&#x2F;sys&#x2F;queue.h?rev=1.43&amp;content-type=text&#x2F;x-cvsweb-markup" rel="nofollow">http:&#x2F;&#x2F;cvsweb.openbsd.org&#x2F;cgi-bin&#x2F;cvsweb&#x2F;src&#x2F;sys&#x2F;sys&#x2F;queue.h...</a>