我正在尝试在运行时包含用户输入的头文件。
int main(){
char *p;
scanf("%s",p);
#include p
#define PATH path
#include PATH
}
包含头文件的方法都不起作用。有没有办法在运行时包含用户输入的头文件?
答案 0 :(得分:2)
您不能在C语言中动态包含任何标头,因为#include
仅在编译期间进行评估(预处理程序指令实际上在编译之前发生)。您需要使用#include <your_header_file.h>
或#include "your_header_file.h"
静态添加标题。
答案 1 :(得分:1)
头文件的预处理方式是在编译时将所有定义都包含在文件中。在预处理中,所有#include" "
或#include< >
都将被编译器的翻译器/预处理单元替换。
如果你试图在运行时包含它们,那就没有任何意义。它们很可能已被删除。