下面的相关介绍来自网络,笔者整理。
首先,以# 开头的都是预编译指令,就是在正式编译之前,编译器做一些预处理的工作。
对比if语句,if、#if、#ifdef、#ifndef都是条件语句,其中
if是条件语句,在运行的过程中根据条件的值选择执行不同的语句。
#if是条件编译语句,在编译阶段执行,如果后面跟的条件成立,就编译对应的语句。
#ifdef是条件编译语句,在编译阶段执行,后面跟一个宏的名称,如果这个宏已经定义了,就编译对应的语句
#ifndef是条件编译语句,在编译阶段执行,后面跟一个宏的名称,如果这个宏没有定义,就编译对应的语句