繁体   English   中英

我可以#define 多深?

[英]How deep can I #define?

我需要使用#defineusing =; 尽可能用表情符号替换 C++ 中的所有内容。

是否可以像#define #define或至少#define if#define ==等 #define 预处理器? 也许与“使用”?

我想替换运算符,核心语言指令......无论如何有可能吗?

我知道上述方法不起作用,但也许有办法?...请帮我做一些有趣的事情::D

是的你可以。 您可能需要考虑语法。 最简单的方法是每个关键字使用一个表情符号。 但是,您可能仍需要以明文形式编写函数和变量名称。

根据 Romens 的评论,我试过了,你也可以用表情符号替换方法名称。

作为概念证明,以下代码使用平台工具集 v142 在 Visual Studio 2019 中编译。

#include <iostream>

#define 😎 int

😎 🍉() {
    std::cout << "I'm 🍉!";

    return 1;
}

😎 main() {
    🍉();
}

甚至更多包括一些评论:

#include <iostream>

#define 🙈 using
#define 🤷🏻‍ cout
#define 😎 int
namespace 🍏 = std;
🙈 🍏::🤷🏻‍;

😎 🍉() {
    🤷🏻‍ << "I'm";
    🍏::cout << "🍉!";

    return 1;
}

😎 main() {
    🍉();
}

using #define以外的其他内容。 您只需要后者。

是否可以像 #define #define 这样的 #define 预处理器

不,不可能定义宏来替换预处理器指令。 (此外,宏也不能扩展为指令)。

或至少#define if

这是可能的。 这取决于编译器它支持什么输入字符编码。 表情符号未列在语言标准指定的基本源字符集中,因此它们可能不存在于编译器使用的字符编码中。

也许与“使用”?

表情符号同样可以using宏。


请注意,任何标识符都可以是表情符号(假设它们首先受支持),包括函数、类型和变量。 例子:

struct 🍏🍏 {};
struct 🍊🍊 {};

int main() {
    🍏🍏{} == 🍊🍊{};
}

暂无
暂无

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

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