原標(biāo)題:要不然,我們就承認php是世界上最好的編程語言吧?(?????)?
但是題目中不能有特殊字符,所以改成了驚嘆。
昨日一個尋常周中下午,陽光透過稀薄云層不似夏日熾熱濃烈?guī)е鴰追智謇渑c蒼白。光線冷冽鋪展大地映的樹影斑駁,淡漠而寧靜。人在這微弱的日光里似乎也被注入了一種慵懶的氣息,身體像是被冬日的倦意包裹每一個動作都變得緩慢而遲緩。這樣的午后原本適合窩在一角,手捧一杯溫?zé)岬牟,或是蜷縮在柔軟的沙發(fā)上,沉浸在一本好書的世界里,任由白日夢將自己輕輕包圍。
我的意思是,昨天午后小憩起來之后很困,腦子轉(zhuǎn)不動就很想去摸一會魚,當(dāng)然大家都是經(jīng)過九年制義務(wù)教育的好學(xué)生自是不用說的那么直白。
低效工作不如歇歇腦子,就癱坐在椅子上刷一會社區(qū)。社區(qū)推薦也是知道最近在苦惱什么于是直勾勾的就推了一個問題:《為什么擁有C語言基礎(chǔ)的人,依然學(xué)不會C++?》看似是上班摸魚實則是為了更好的工作而暗中努力學(xué)習(xí)呀,精神實在是值得鼓勵。
這么好的問題當(dāng)然要看看大家怎么說,瀏覽了一些回答感覺心情舒暢了很多,原來學(xué)不會C++也不是我自己的問題。然后,很突然啊,就在評論區(qū)(評論區(qū)已爆改吐槽區(qū))看到了沒有閃開的一段代碼:
#define mul(a, b) a * b
int main(void){ int a; mul(int, p = &) a; mul(if(1), p) = 5; int printf(const char*,...); printf("%d", 0[p]);}腦海中閃現(xiàn)精靈副將馬國成,那種腦子嗡嗡的不知道大家有沒有體會,就是想用“C語言”或者“C++”親切問候編碼者但是礙于文雅不好說出口,大腦和道德作斗爭的感覺:
當(dāng)然這里應(yīng)用了夸張的修辭手法,實際上沒這么激動,倒是覺得很有意思,畢竟這兩天剛把指針和引用分清。這下整個人一點也不困了,正如前同事所說“上班時候做啥都比上班有意思,包括肉眼掃描條形碼”。開始逐行翻譯這段代碼(C++翻譯C++就很離譜),些許風(fēng)霜之后譯碼成功:
#include "stdio.h" // 里面定義了int printf(const char*,...),函數(shù)原型就長這樣#define mul(a, b) a * b //上來先震驚一手int sc_main(int argc, char* argv[]) { int a; // 珍惜吧,這一段里唯一正常的一行代碼 mul(int, p = &) a; //int *p = &a; 指向int類型的指針p指向了int a的地址 mul(if(1), p) = 5; //if(1) *p = 5; if(1)必定滿足, *p表示p指向的空間,值更新為5 printf("%d
", 0[p]); //0[p]即*(p+0),所以這里是 printf("%d", *p)即打印p指向地址里存的值,5 printf("%d
", a); //加上這句也行,反正都打印出來5 return 0; //確實是有大病的一段代碼啊哈哈}翻譯完那必然是得驗證下,嚴謹?shù)膶嵺`派是不能接受沒有跑起來的一段代碼。在虛擬機里一通敲,run一下果然翻譯的沒有問題:
人進過了左腦翻譯右腦反駁的歷程終于理解了之后,就想看看大模型能不能理解。于是用這段代碼去考考通意,畢竟最近gpt小崩了下這段時間通意在寫代碼上出力最多,也應(yīng)該讓他嘗嘗細糠。結(jié)果別說,雖然通意上來就覺得代碼是錯的跑不起來(也對,誰看到這代碼能覺得對呢),但還是努力改了一版基本符合原意的正確版本出來:
可以的,以后C++的代碼還讓你寫。
最后我又跑去和HY分享了一下這段代碼,收獲了若干評價:
我覺得說的在理,畢竟在代碼的優(yōu)秀程度上,也就php能壓C++一頭了,總不能讓大家投JavaScript吧那也不是編程語言。以后如果有機會做ESL面試官我一定拿這段代碼考他!
最后HY為了說明C語言/C++能寫出多奇葩的代碼,又推薦了驚喜小彩蛋:
點開看了里面列舉的幾個獲獎代碼,怎么講呢,深得我意啊。
還有獲獎作品供大家運行下,比如計算圓周率:
#define _ -F int F=00,OO=00;main(){F_OO();printf("%1.3f
",4.*-F/OO/OO);}F_OO() { _-_-_-_ _-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_ _-_-_-_ }這跟那個畫符的編程語言Brainf和諧k有啥區(qū)別呢,人家也能畫的這么好看來輸出Hello World:
++++++++++[>+++++++>++++++++++>+++>++.>+.+++++++ ..+++.>++..+++.------.--------.>+.行就寫這么多吧,最后高呼一句“PHP是這個世界上最好的編程語言!”
系列文章入口——
【芯片設(shè)計】SoC 101(一):緒論 | 【芯片設(shè)計】FIFO漫談(零)從無處不在的FIFO開始說起 | 【芯片設(shè)計】計算機體系結(jié)構(gòu)(一)虛擬內(nèi)存 | 【芯片設(shè)計】深入理解AMBA總線(零)緒論
| 【芯片設(shè)計】握手協(xié)議的介紹與時序說明 | 【芯片設(shè)計】復(fù)位那些小事 —— 復(fù)位消抖 | 【芯片設(shè)計】快速入門數(shù)字芯片設(shè)計(一)Introduction | 【芯片驗證】UVM源碼計劃(零)下定決心讀源碼前的自測環(huán)節(jié)
| 【芯片設(shè)計】異步電路碎碎念(一) 到底什么是異步電路
| 【芯片設(shè)計】從RTL到GDS(一):Introduction
| 其他文章鏈接——
【芯片驗證】sva_assertion: 15道助力飛升的斷言練習(xí) | 【芯片驗證】可能是RTL定向驗證的巔峰之作 | 【芯片驗證】RTL仿真中X態(tài)行為的傳播 —— 從xprop說起 | 【芯片驗證】年輕人的第一個systemVerilog驗證環(huán)境全工程與解析 |
【芯片設(shè)計】verilog中有符號數(shù)和無符號數(shù)的本質(zhì)探究
| 【芯片設(shè)計】論RTL中always語法的消失術(shù) | 【芯片設(shè)計】代碼即注釋,注釋即代碼 | 【芯片設(shè)計】700行代碼的risc處理器你確實不能要求太多了 |
入職芯片開發(fā)部門后,每天摸魚之外的時間我們要做些什么呢 | 如何計算系統(tǒng)的outstanding 和 burst length? | 芯片搬磚日!け扑缽娖劝Y的關(guān)鍵詞不對齊事件 | 熟人社會里,一群沒有社會價值的局外人 |
|