[英]How deep can I #define?
我需要使用#define
并using =;
尽可能用表情符号替换 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.