導航:首頁 > 源碼編譯 > 編譯器寫代碼會跳動

編譯器寫代碼會跳動

發布時間:2022-10-03 04:58:55

1. 編51單片機的匯編語言程序時,如何防止編譯器在編譯的時候提示「跳轉出范圍」

提示跳轉出范圍應該是編譯器認為你的代碼非法,跳出了所能讀到的地址,那就說明你的代碼有錯誤,需要修改。

2. codeblocks 編譯時下面提示錯誤的框不見了,怎麼找出來呢

codeblocks 編譯時下面提示錯誤的框不見了,怎麼找...
答:view——logs
codeblocks上面那個點編譯運行的框框被我弄沒了,...
答:滑鼠滑到「視圖」移動到「工具欄」會出現一堆東西,依次點擊就都出來了,然後選擇優化工具欄就更好看咯,不過我是沒恢復成原樣~V~,但是東西都出來了
codeblocks下面的方框被我不小心關了,如何打開?...
答:菜單欄view-logs
求助,codeblocks左邊的框沒了,怎麼弄出來
答:shift+F2就可以了
我用codeblocks怎麼沒有實時的錯誤提示
答:CodeBlockslogs見般自點看 用點view perspective delete current 行
編譯器codeblocks的logs(顯示源代碼錯誤的)不見...
答:CodeBlocks的logs不見了,,一般是你自己把它點到一個看不到的地方去了。 你只用點view 然後perspective然後 delete current 就行了。
codeblocks編譯有錯誤的代碼,怎麼設置讓它顯示錯...
答:F2或者view -> log
codeblocks怎麼樣才能恢復默認設置啊,我不小心把...
答:我也遇到了同樣的問題,呵呵!正在找答案!
codeblocks無法編譯!!錯誤提示如下
答:第一步,打開Code::Blocks,點擊菜單欄Settings選項; 點擊第三個Compiler ; 第二步,選擇左側Global compiler settings; Selected compiler選擇GNU GCC Compiler 選擇Toolchain executables選項;查看編譯器根目錄; 第三步,找到Code::Block...
我用codeblocks怎麼沒有實時的錯誤提示
答:按F2 一般關鍵字拼寫錯誤, 會出現, undeclared XXX 這樣的編譯錯誤 。 能不能從編譯器看出來,就是看你用啥編譯器了。 可以用netbeans編譯器,寫代碼時候會檢查每一行是否有錯誤。

3. 在codeblock編譯一個代碼為什麼會跳到別的代碼上去

我也覺得作為一個優秀的IDE,不可能沒有這個功能。
這幾天研究了一下,找到了這個功能了。
返回原來的,是菜單欄里的View
-
Jump
-
Jump
Back。
當然,這樣按很不方便,可以自己設置快捷鍵的。
在Setting
裡面的Editor
的Keyboard
Shortcut里設置。
如果沒有這個,可能是安裝的時候,沒有裝全,可以重新裝一次,
選擇安裝組件時,注意把codeblocks-contrib下面的裝上,這樣會多很多插件,其中包括了鍵盤快捷鍵設置的插件。(我也是今天才發現這個沒裝,裝上後可訂制性大大增強了)

4. 現代C/C++編譯器有多智能

最近在搞C/C++代碼的性能優化,發現很多時候自以為的優化其實編譯器早就優化過了,得結合反匯編才能看出到底要做什麼樣的優化。
請熟悉編譯器的同學結合操作系統和硬體談一談現代c/c++編譯器到底有多智能吧。哪些書本上的優化方法其實早就過時了?
以及程序員做什麼會讓編譯器能更好的自動優化代碼?
舉個栗子:
1,循環展開,大部分編譯器設置flag後會自動展開;
2,順序SIMD優化,大部分編譯器設置flag後也會自動優化成SIMD指令;
3,減少中間變數,大部分編譯器會自動優化掉中間變數;
etc.
查看代碼對應的匯編:
Compiler Explorer
【以下解答】
舉個之前看過的例子:
int calc_hash(signed char *s){ static const int N = 100003; int ret = 1; while (*s) { ret = ret * 131 + *s; ++ s; } ret %= N; if (ret < 0) ret += N; //注意這句 return ret;}
【以下解答】
舉個簡單例子,一到一百求和
#include int sum() { int ret= 0; int i; for(i = 1; i <= 100; i++) ret+=i; return ret;}int main() { printf("%d\n", sum()); return 0;}
【以下解答】
話題太大,碼字花時間…
先放傳送門好了。
請看Google的C++編譯器組老大Chandler Carruth的演講。這個演講是從編譯器研發工程師的角度出發,以Clang/LLVM編譯C++為例,向一般C++程序員介紹理解編譯器優化的思維模型。它講解了C++編譯器會做的一些常見優化,而不會深入到LLVM具體是如何實現這些優化的,所以即使不懂編譯原理的C++程序員看這個演講也不會有壓力。
Understanding Compiler Optimization - Chandler Carruth - Opening Keynote Meeting C++ 2015
演示稿:https://meetingcpp.com/tl_files/mcpp/2015/talks/meetingcxx_2015-understanding_compiler_optimization_themed_.pdf
錄像:https://www.youtube.com/watch?v=FnGCDLhaxKU(打不開請自備工具…)
Agner Fog寫的優化手冊也永遠是值得參考的文檔。其中的C++優化手冊:
Optimizing software in C++ - An optimization guide for Windows, Linux and Mac platforms - Agner Fog
要稍微深入一點的話,GCC和LLVM的文檔其實都對各自的內部實現有不錯的介紹。
GCC:GNU Compiler Collection (GCC) Internals
LLVM:LLVM』s Analysis and Transform Passes
========================================
反模式(anti-patterns)
1. 為了「優化」而減少源碼中局部變數的個數
這可能是最沒用的手工「優化」了。特別是遇到在高級語言中「不用臨時變數來交換兩個變數」這種場景的時候。
看另一個問題有感:有什麼像a=a+b;b=a-b;a=a-b;這樣的演算法或者知識? - 編程
2. 為了「優化」而把應該傳值的參數改為傳引用
(待續…)
【以下解答】
推薦讀一讀這里的幾個文檔:
Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
其中第一篇:http://www.agner.org/optimize/optimizing_cpp.pdf
講解了C++不同領域的優化思路和問題,還有編譯器做了哪些優化,以及如何代碼配合編譯器優化。還有優化多線程、使用向量指令等的介紹,推薦看看。
感覺比較符合你的部分需求。
【以下解答】
一份比較老的slides:
http://www.fefe.de/source-code-optimization.pdf
【以下解答】
利用C++11的range-based for loop語法可以實現類似python里的range生成器,也就是實現一個range對象,使得
for(auto i : range(start, stop, step))
【以下解答】
我覺得都不用現代。。。。寄存器分配和指令調度最智能了
【以下解答】
每次編譯poco庫的時候我都覺得很為難GCC
【以下解答】
有些智能並不能保證代碼變換前後語義是等價的
【以下解答】
誒誒,我錯了各位,GCC是可以藉助 SSE 的 xmm 寄存器進行優化的,經 @RednaxelaFX 才知道應該添加 -march=native 選項。我以前不了解 -march 選項,去研究下再來補充為什麼加和不加區別這么大。
十分抱歉黑錯了。。。以後再找別的點來黑。
誤導大家了,實在抱歉。(??ˇ?ˇ??)
/*********以下是並不正確的原答案*********/
我是來黑 GCC的。
最近在搞編譯器相關的活,編譯OpenSSL的時候有一段這樣的代碼:
BN_ULONG a0,a1,a2,a3; // EmmetZC 註:BN_ULONG 其實就是 unsigned longa0=B[0]; a1=B[1]; a2=B[2]; a3=B[3];A[0]=a0; A[1]=a1; A[2]=a2; A[3]=a3;
【以下解答】
提示:找不到對象
【以下解答】
忍不住抖個機靈。
私以為正常寫代碼情況下編譯器就能優化,才叫智能編譯器。要程序員絞盡腦汁去考慮怎麼寫代碼能讓編譯器更好優化,甚至降低了可讀性,那就沒有起到透明屏蔽的作用。
智能編譯器應該是程序猿要較勁腦汁才能讓編譯器不優化。
理論上是這樣的。折疊我吧。
【以下解答】
編譯器智能到每次我都覺得自己很智障。
【以下解答】
雖然題主內容里是想問編譯器代碼性能優化方面的內容,但題目里既然說到編譯器的的智能,我就偏一下方向來說吧。
有什麼更能展示編譯器的強大和智能?
自然是c++的模版元編程
template meta programming
簡單解釋的話就是寫代碼的代碼,寫的還是c++,但能讓編譯器在編譯期間生成正常的c++代碼。
沒接觸過的話,是不是聽上去感覺就是宏替換的加強版?感覺不到它的強大呢?
只是簡單用的話,效果上這樣理解也沒什麼
但是一旦深入下去,尤其翻看大神寫的東西,這明明看著就是c++的代碼,但TM怎麼完全看不懂他在干什麼?後來才知道這其實完全是另外一個世界,可是明明是另外一個世界的東西但它又可以用來做很多正常c++能做的事....
什麼?你說它好像不能做這個,不能做那個,好像做不了太多東西,錯了,大錯特錯。就像你和高手考試都考了100分的故事一樣,雖然分數一樣,但你是努力努力再努力才得了滿分,而高手只是因為卷面分只有100分.....在元編程面前,只有想不到,沒有做不到。
再回頭看看其他答案,編譯器順手幫你求個和,丟棄下無用代碼,就已經被驚呼強大了,那模板元編程這種幾乎能在編譯期直接幫你「生成」包含復雜邏輯的c++代碼,甚至還能間接「執行」一些復雜邏輯,這樣的編譯器是不是算怪獸級的強大?
一個編譯器同時支持編譯語法相似但結果不同卻又關聯的兩種依賴語言,這個編譯器有多強大多智能?
寫的人思維都要轉換幾次,編譯器轉著圈嵌著套翻著番兒地編譯代碼的代碼也肯定是無比蛋疼的,你說它有多強大多智能?
一個代碼創造另外一個代碼,自己能按照相似的規則生成自己,是不是聽上去已經有人工智慧的發展趨勢了?
上帝說,要有光,於是有了光。
老子曰,一生二,二生三,三生萬物。
信c++,得永生!
===
FBI WARNING:模板元編程雖然很強大,但也有不少缺點,尤其對於大型項目,為了你以及身邊同事的身心健康,請務必適度且謹慎的使用。勿亂入坑,回頭是岸。
【以下解答】
c++11的auto自動類型推斷算么....
【以下解答】
智能到開不同級別的優化,程序行為會不同 2333
【以下解答】
這個取決於你的水平

5. 手機C++編譯器

一直以來都喜歡用手機看書,尤其是在上班時。看的最多的是編程一類的書,主要是C++,看著就想寫寫代碼,可是電腦用不能用,怎麼辦?於是想到用UC瀏覽器找找看網上有沒有在線的編譯器,想什麼時候寫代碼都可以驗證。於是就找了幾個,各有千秋吧。中文的我沒找到,全是英文的,不過英文不難,其實也不需要懂英文,只要知道在什麼地方寫代碼,然後點擊按鈕進行在線編譯就行了。好了,下面看介紹:

1、http://codepad.org/

推薦星級:★★★★

是否需注冊:否(注冊的話也很快,幾秒鍾而已)

優點:網頁界面簡潔,一目瞭然,適合手機瀏覽器。且支持C,C++,D,php,PYTHON,Perl,Ruby等十幾種編程語言,非常強大。查看執行結果時,高亮顯示代碼。

缺點:有時點擊提交按鈕後,給出一個出錯頁面,需多次提交才給出結果。另外不具有交互性,且不提供編譯後的可執行文件。

2、http://www.comeaucomputing.com/tryitout/

推薦星級:★★

是否注冊:貌似不需要(網頁上顯示,注冊後功能更多)

優點:編譯器的版本多

缺點:頁面文字較多,不適合手機瀏覽,且編譯後顯示結果不明了,反正我最簡單的"Hello World"程序好像都通不過

3、http://www.botskool.com/online-compiler(本人最喜歡的)

推薦星級:★★★★☆

是否注冊:需要(注冊簡單,絕對值得)

優點:自動記錄上一次所寫代碼,執行結果顯示明顯,並且可以進行簡單的交互(我認為是亮點)。網站提供了交流論壇,編程學習資料。

缺點:頁面廣告文字較多,不過手機瀏覽的話還可以接受。無論是編寫代碼還是查看結果,頁面大面積是其他用戶代碼示例,顯得頁面臃腫。支持語言少,只有C,C++,Java三種。

4、http://onlinecompiler.net/(現在不知道為什麼打不開了,前幾天還可以用,在這列出來先)

推薦星級:★★★

優點:記不清了,只記得可以下載編譯後的exe文件(這就是我列出來的原因)

缺點:不記得了

5、http://cmpe150-1.cmpe.boun.e.tr/phpccompiler/login.php

推薦星級:★★★

是否注冊:否

優點:編輯時有感應提示框,高亮顯示語法,可下載編譯後exe文件。界面簡潔。

缺點:只支持C語言。只支持IE6以上瀏覽器,其他瀏覽器一概不支持,手機無法瀏覽。不在線顯示運行結果。沒有出錯提示。

6、http://ideone.com

推薦星級:★★★★★

是否注冊:否(注冊後功能更強大)

優點:我見過的支持語言最多的,多達58種(哥驚呆了),編輯功能最強大的(顯示行號,語法高亮,查找,定位到行,全屏顯示,行信息,列信息顯示),錯誤信息顯示清晰,結果顯示明顯,有簡單交互功能,可以上傳源文件進行編譯,並且可以下載exe文件,界面簡潔更難能可貴。

6. 為什麼我在Vs2019的編譯器上寫一串代碼編譯器顯示沒錯誤,但Unity顯示有錯誤

函數內不能定義public成員變數。
去掉圖3第11行的public或將這一行移到函數的外面。

閱讀全文

與編譯器寫代碼會跳動相關的資料

熱點內容
道士趕著女僵屍的電影 瀏覽:260
易排版怎麼給文章加密 瀏覽:623
和尚和一個女人的愛情完整版 瀏覽:822
回明綠帽改編楊凌的嬌妻美妾 瀏覽:69
維語電影大全在線觀看 瀏覽:872
媽媽的職業女演員 瀏覽:386
編譯器順序執行的基本步驟示意圖 瀏覽:664
番禺影院 瀏覽:586
穿越到杉杉來了世界 瀏覽:837
日本好看的推理電影 瀏覽:796
墨西哥大尺度電影 瀏覽:167
黃秋生電影有個叫十方大師的 瀏覽:214
vodtypehtml/31/index_2.html 瀏覽:940
瀏覽器如何獲取加密文件 瀏覽:492
無廣告在線電影網站 瀏覽:298
電影里有個叫大衛的男主角 瀏覽:780
韓國中文字幕要愛電影網 瀏覽:977
古代父女禁愛 瀏覽:933
雲伺服器抽算力 瀏覽:534
哪些網站可以供成人看電影,而且不犯法 瀏覽:909