预处理器参数和在 C 中编译 #ifndef #ifdef

Cyb*_*low 2 c conditional-compilation c-preprocessor ifndef

编译文件时尝试在我的代码中应用默认值。

我需要在我的代码中将定义的关键字设置为某个值。

因此,当我编译代码并且它在编译器的参数中没有收到任何定义时,它将使用我的默认值。

我不确定如何做到这一点,但我有一点想法:

#ifndef MAXWORKLOAD
#define MAXWORKLOAD 10
#endif
Run Code Online (Sandbox Code Playgroud)

因此,如果我将其放入代码中并在参数中使用此命令行:

gcc -W -Wall 
Run Code Online (Sandbox Code Playgroud)

它会使用 10 有默认吗?

如果我在编译时使用这个命令行:

gcc -W -Wall -DMAXWORKLOAD=5
Run Code Online (Sandbox Code Playgroud)

它将使用 5 作为其新设置?

通过阅读有关此的文档,我不太清楚。

Ben*_*ght 6

不知道如何回答这个问题,但是......

恩,那就对了。