亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

您遇到過的最糟糕的現實世界宏/預處理器濫用情況是什么?

您遇到過的最糟糕的現實世界宏/預處理器濫用情況是什么?

C++
青春有我 2019-11-03 08:04:27
您遇到過的最糟糕的 現實世界宏/預處理器濫用情況(請不要有故意的IOCCC回答*哈哈*)?如果確實很有趣,請添加簡短的摘錄或故事。目的是教一些東西,而不是總是告訴人們“從不使用宏”。ps:我以前使用過宏...但是通常,當我有一個“真實的”解決方案時,最終我會擺脫它們(即使真正的解決方案是內聯的,因此它變得類似于宏)。
查看完整描述

3 回答

?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

從內存看,它看起來像這樣:


#define RETURN(result) return (result);}


int myfunction1(args) {

    int x = 0;

    // do something

    RETURN(x)


int myfunction2(args) {

    int y = 0;

    // do something

    RETURN(y)


int myfunction3(args) {

    int z = 0;

    // do something

    RETURN(z)

是的,沒錯,任何函數都沒有右括號。語法突出顯示是一團糟,因此他使用vi進行編輯(不是vim,它具有語法著色?。?/p>


他是一位俄羅斯程序員,主要從事匯編語言工作。他熱衷于保存盡可能多的字節,因為他以前曾在內存非常有限的系統上工作。“這是用于衛星的。只有很少的字節,因此我們將每個字節用在很多事情上?!?(擺弄,重復使用機器指令字節的數值)當我試圖找出哪種衛星時,我只能得到“在軌衛星。為了進入軌道”。


他還有另外兩個怪癖:一面安裝在監視器上方的凸面鏡“為了知道誰在看”,偶爾從椅子上突然退出以進行十次俯臥撐。他將最后一個解釋為“編譯器發現代碼錯誤。這是懲罰”。



查看完整回答
反對 回復 2019-11-04
?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

我最糟糕的是:


#define InterlockedIncrement(x) (x)++

#define InterlockedDecrement(x) (x)--

我花了兩天的時間來解決一些多線程COM引用計數問題,因為有些白癡將其放在頭文件中。我不會提到我當時工作的公司。


這個故事的寓意?如果您不了解某些內容,請閱讀文檔并了解有關內容。不要只是讓它消失。



查看完整回答
反對 回復 2019-11-04
?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

#include <iostream>

#define System S s;s

#define public

#define static

#define void int

#define main(x) main()

struct F{void println(char* s){std::cout << s << std::endl;}};

struct S{F out;};


public static void main(String[] args) {

  System.out.println("Hello World!");

}

挑戰:誰能用更少的定義和結構來做到這一點?;-)



查看完整回答
反對 回復 2019-11-04
  • 3 回答
  • 0 關注
  • 362 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號