#include在代码中间

Sun*_*awn 6 c header

我想在我的程序中有条件地包含头文件.是否可能,如果可以,我该怎么做?

我的想法是做这样的事情:

switch(opt)
{
case 0:
    {
        #include "matrix.h"
        break;
    }
case 1:
    {
        #include "grid.h"
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是VS在我写这篇文章时的表现.这样对吗?

Jee*_*tel 10

编译时,您可以控制条件包含头文件

#ifdef MAGIC
#include "matrix.h"
#else
#include "grid.h"
#endif
Run Code Online (Sandbox Code Playgroud)

在编译时

gcc -D MAGIC=1 file.c 
Run Code Online (Sandbox Code Playgroud)

要么

gcc file.c
Run Code Online (Sandbox Code Playgroud)

但在运行时, 条件包含头文件是不可能的.

这意味着您的伪代码无法显示.