C 预处理器#include

C++ pre-processor #include

本文关键字:#include 处理器 预处理      更新时间:2023-10-16

我正在尝试将我的程序变成多种语言,在开始时,询问用户是否想要Lagenchal1或Language2。用户输入存储在变量中,然后使用if语句,我得到用户选择的语言。

这样:

std::cin >> language;
if(language == ENGLISH)
     {
     // Do something
     }
else if(language == SPANISH)
     {
     // Do something else
     }

我接下来要做的是,我存储了要翻译成两个标题文件的每个功能,一个英语和一个西班牙语,两个标头文件都是完全相同的,除了每个输出都会翻译。

现在我所做的就是这样

std::cin >> language;
if(language == ENGLISH)
     {
     #include "English.h"
     }
else if(language == SPANISH)
     {
     #include "Spanish.h"
     }

现在,#include是一项前处理器指令,因此在主函数之前被"执行",任何方式围绕此操作?

现在,#include是后处理器指令,因此在主函数之前被"执行"

它是 pre 处理器指令。它不是在运行时"执行";源是在编译之前预处理的。

有什么方法?

已编译和执行程序后无法运行预处理器。

一种更好的方法是不复制功能定义,而是在打印输出之前调用函数以翻译消息。此翻译函数应将一个参数字符串映射到翻译的字符串。