簡體   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