[英]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.