如何在C ++预处理程序指令中使用“#”作为字符

时间:2018-09-10 22:58:31

标签: c++ c-preprocessor

我想将#include重新定义为另一个单词。我不知道C ++预处理是否可以做到这一点,但我正在尝试:

#define import #include
#define io <iostream>

import io

这显然不起作用,所以我只是想知道我是否可以转义“ import #include”语句中的“#”以完全更改它,但这还需要对预处理器进行另外的调试相信。任何输入为此将不胜感激。

对于任何想知道该错误的人,错误输出是“ 在语句中发现流浪”#“ ”。

编辑: 我查看了注释,现在我了解了c预处理器的工作方式。我以前不太了解,但我认为我找到了解决方法。这样做的原因是创建一种将导入语句从一种语言转换为包含c ++语句的简便方法。该语言是我自己制作的,是的,它可以完成其他语言无法完成的工作。

1 个答案:

答案 0 :(得分:3)

抱歉,您无法通过C ++语言的功能(包括预处理器)重新定义#include

但是您可以通过任何程序(甚至是用C ++编写的程序)对源代码进行预处理。尽管我的印象是脚本语言是最常见的选择。但是,只有这样做是有充分理由的。

例如,包括我自己在内的一些人认为Qt框架中的预处理是Evil™。在现代C ++(C ++ 11之后的语言)中,这当然是不必要的。但是该框架早于现代C ++。