#ifdef在什么时候起作用呀?解决思路

#ifdef在什么时候起作用呀?
#ifdef这些宏是在编译时起作用呢,还是运行时起作用?

------解决方案--------------------
在预处理的时候,比编译时还早。
------解决方案--------------------
预编译阶段就起作用,比编译更早
------解决方案--------------------
通常执行一个程序包含:预处理、编译、链接、执行。
ifdef在预处理阶段就完成了。在后续过程中就不需要判断了。
探讨
引用:

在预处理的时候,比编译时还早。

就是说运行时他们就不起作用了,对吗?