繁体   English   中英

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

[英]How can I use “#” as a character in c++ preprocessor directives

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

#define import #include
#define io <iostream>

import io

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

对于任何想知道该错误的人,错误输出为“ Stray”#“在语句...中找到

编辑:我看了评论,现在我更多地了解了c预处理器如何工作。 我以前不太了解,但我认为我找到了解决方法。 这样做的原因是创建一种将导入语句从一种语言转换为包含c ++语句的简便方法。 这种语言是我自己创造的,是的,它完成了其他语言无法做到的事情。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM