Question: what is the difference between if and #if in c?
Answer: 'if' gets evaluated at runtime and both the blocks if and else are avaliable for execution in the binary. Where as code skipped by #if are ommitted by compiler and not present in the final object code and binary.