C preprocessor unironically will outlast C itself and all programming language of this century, because its A.extremely primitive (#define, #if,#ifdef) and can be interpreted by non-programmers. B.will have to be supported for old headers(system/libraries) or at least interpreted by some other means. C.doesn't change significantly, only few new features. Conclusion: Write you're void.h