gpt4 book ai didi

C++,如何动态包含.h

转载 作者:行者123 更新时间:2023-11-30 00:37:37 26 4
gpt4 key购买 nike

抱歉我的英语不好。

例如:

//
// File : Main.cpp
//
#include <stdlib.h>
int main()
{
printf(TEST_DEFINE);
return (EXIT_SUCCESS);
}

标题:

//
// File : test_define.h
//
#ifndef TEST_DEFINE_H_INCLUDED
#define TEST_DEFINE_H_INCLUDED

#define TEST_DEFINE

#endif

我想通过编译器或其他程序包含该 header 。我不想在 CPP 文件中包含此 header 。

我该如何处理?我对所有建议持开放态度。

这种情况非常棘手,但对于我的 POC 程序来说是必要的。

最佳答案

GCC 有一个选项 -include file 这会导致预处理器包含 header ,就好像程序的第一行说 #include "file"

参见 manual

例如给定你的 main 的固定版本(应该是 #include <stdio.h> ):

#include <stdlib.h>
#include <stdio.h>
int main()
{
printf(TEST_DEFINE);
return (EXIT_SUCCESS);
}

和你的标题:

//
// File : test_define.h
//
#ifndef TEST_DEFINE_H_INCLUDED
#define TEST_DEFINE_H_INCLUDED

#define TEST_DEFINE "hello\n"

#endif

然后我可以这样使用它:

$ g++ -include test_define.h main.cpp -o main
$ ./main
hello

关于C++,如何动态包含.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12969672/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com