导航:首页 > 源码编译 > 编译器写代码会跳动

编译器写代码会跳动

发布时间: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或将这一行移到函数的外面。

阅读全文

与编译器写代码会跳动相关的资料

热点内容
为什么有压缩分卷才能继续解压 浏览:316
AnalDelinquent 浏览:889
同人绿帽改编 浏览:624
生病的男人也要去找电影 浏览:565
邵氏全部电影 浏览:281
背着妈妈在楼道和男朋友韩剧 浏览:292
用php开发购物网站 浏览:966
欧美四级怀旧老片 浏览:979
比较黄的台湾电影 浏览:751
图片批量在线压缩 浏览:706
比较黄的穿越小说 浏览:250
电影人狗叫 浏览:507
取消压缩管理的公司 浏览:117
打真军的电影豆瓣 浏览:168
特斯拉app超级充电桩如何使用 浏览:423
男人怀孕电影袋鼠男人 浏览:507
如何删去应用加密 浏览:469
服从命令听指挥陌千依小说 浏览:762
《赤足惊魂》电影介绍 浏览:359
ic卡内数据如何传到服务器 浏览:22