As both macros may hide valid errors, their usage is not recommended unless there is a well-thought reason for a cast. A typical use case for
__UNCONST() involve an API that does not follow the so-called ``const correctness'' even if it would be appropriate. Valid use cases of
__UNVOLATILE() include passing a
volatile pointer to
memset(3).