AI Code Reviewer 是一個通過AI幫助你審查代碼的網站,你可以輸入你的代碼讓AI幫你檢查,在左邊輸入你的代碼,然後點選Get the review by AI按鈕,網站會在右邊評估你的代碼,并給出分析。但是代碼這種我的知識盲區的東西,我完全不知道應該怎麼使用它。
但是,有萬能的網際網路,不會寫,我就找一段代碼試試看呗,很快,我找到了一篇分享“國際C語言混亂代碼大賽”,簡稱IOCCC的文章,提供了一段獲獎代碼
main(_){_^448&&main(-~_);putchar(--_%64?32|-~7[__TIME__-_/8%8][">'txiZ^(~z?"-48]>>";;;====~$::199"[_*2&8|_/64]/(_&2?1:8)%8&1:10);}
完美是不是,一段獲獎代碼,輸入AI看看它有什麼反應!說不定能直接也給我發個獎?最佳複制粘貼獎!*……%&……%&%……%(省略白日夢500字)。很快AI運算完成後給了我一行冰冷的文字“此代碼不是有效的C代碼。它使用一進制運算符“-~”,這不是C語言的一部分。”
這不是一段獲獎代碼嗎?為什麼不行?我不是很明白,是不是複制粘貼少了什麼?還是什麼後面多了一個空格?看‘’一進制運算符“-~””應該是它錯誤的問題,但是一進制運算符又是什麼?
經過我認真研究和仔細分析,我找到了問題的所在,罪魁禍首就是“國際C語言混亂代碼大賽”,IOCCC
國際C語言混亂代碼大賽(IOCCC, The International Obfuscated C Code Contest)是一項國際程式設計賽事,從1984年開始,每年舉辦一次(1997年、1999年、2002年、2003年和2006年例外)。目的是寫出最有創意的最讓人難以了解的C語言代碼。
這段代碼的初衷是就是讓人難以了解,是以AI不認識應該也很正常吧?應該也很正常吧?應該也很正常吧?我決定再找一段代碼,看看AI能不能分辨。
“代碼似乎沒有任何問題。”AI似乎分辨出了代碼是可以運作的,但我卻陷入了沉思,我并不知道這段代碼是否正确,那我怎麼知道AI分辨的正确是正确的那?于是我決定删掉代碼中的一個單詞,看看結果,很快,AI給出了結論。
這段代碼似乎是在頁面上嵌入百度分享按鈕的有效腳本。但是,它缺少一些必需的配置參數,例如bdSnsKey和bdText。沒有這些,共享按鈕将無法工作。
看起來AI識别出了我删除的内容讓代碼運作不能,這讓我對這個AI的結論有了一些相信,那如果我加上一些東西,會不會破壞代碼的結構?想到這,毫不猶豫,說幹就幹。
此代碼似乎是有效的JavaScript代碼。這似乎是一段代碼,用于在使用百度共享服務的網站上共享内容。代碼沒有明顯的問題。
我又陷入了沉思,我的确加了上圖中“23”2個數字,但AI卻說代碼沒問題,但是我又不知道我加的這兩個數字是不是不影響代碼,是以我又不知道AI分辨的正确是正确還是不正确了。或者,我改變一下23的位置?會不會影響代碼?
此代碼似乎有幾個問題。首先,行````getElementsByTagName('head23')```應該是```GetElementsByTag('head')``。其次,```bdSnsKey```對象為空,這将導緻錯誤。此外,變量```bdText```、````bdPic``和```` bdSize``未配置設定任何值,這也會導緻錯誤。最後,“共享”對象為空,這可能會導緻意外行為。
這一次,AI提示了我,代碼中這個“23”是個明顯的錯誤,看來“23”的存在嚴重影響了代碼的運作,這讓我又對AI的結論有了一些相信。
對于我這種不懂代碼的人,這也是唯一能判斷的方式,各位程式員大神們,你們也可以去試試看,有結果再回來告訴我呀!