精华内容
下载资源
问答
  • gcc -S 参数可以C语言代码转换成汇编...复习汇编,一个简单的例子如下是一段非常简单的c程序它编译成汇编gcc -S aa.cpp生成汇编结果aa.s, 我在文件中增加了一些注释。本程序只有一个代码段,没有数据段。参数和...

    gcc -S 参数可以把C语言代码转换成汇编代码。对照汇编代码看C别有一番风味,很多编译器行为都有了本质的解释。
    本人对汇编也是一知半解,工作中没有用到过,上学时候学的还是16位的汇编,基本上也忘光了。一边学习一边记录吧。


    复习汇编,一个简单的例子


    如下是一段非常简单的c程序

    4ccc357a111cbdaad0f2559cfa09db77.png


    把它编译成汇编
    gcc -S aa.cpp
    生成汇编结果aa.s, 我在文件中增加了一些注释。

    68326e5326828456633cbed5777720cd.png


    本程序只有一个代码段,没有数据段。参数和临时变量存储在栈中,栈属于代码段。本程序栈空间的组织如下:

    5a228ce056a6453f17a108e3f4c7ad21.png

    函数调用


    再分析以下带简单函数调用的例子

    aaa7bf17a4ad2d25baf627eb51bc691b.png


    对照的汇编代码如下:

    bfc83760c96b36bc1d48ec4c92d2aaa7.png

    6357aff0da8d5811f5c7914c5d8635ef.png


    程序栈如下:

    af093906e324fa582335268e8ca57c5c.png


    HelloWorld分析


    HelloWorld很多时候都被认为是最简单的,但其实没那么简单。因为涉及到输出调用,这个函数的调用比普通函数复杂。而且HelloWorld不只有代码段
    先看C程序:

    87d3061a8ac6220599febbe58dd90462.png


    对应的汇编程序

    5b4673e2afa5ae77634fb6b6016cf170.png

    .
    编译优化


    C语言程序

    d0b4dadb737da9fb48fda6ba508a8336.png


    不优化编译
    gcc -S dd.c 生成结果:

    caab782898ae041a2d72b9580d79b9be.png


    其中a和c对应的栈地址是-20和-28, 因为c语言函数没有给他们赋初值,汇编一样没有操作,所以这两个变量的值是栈内存上原来的值。不付初值少了汇编指令,理论上效率高些。但程序安全性降低不少,综合考虑,还是养成赋初值的习惯比较好。
    我们再试试优化编译
    gcc -S -O2 dd.c 生成代码

    e02485badaf1cecd9021360e3f5f3d3e.png


    把赋值,加法全都干掉了。直接输出100的最终结果。太酷了!

    展开全文
  • 电脑用的是win7 64位 ,VS2017 社区版; 在每次运行vs2017会一直弹出提示addEventListener调用错误,根据弹出框中的路径,进入到 C:\Program Files (x86)\Microsoft Visual ...将里面的script标签中的语句全部注释掉

    电脑用的是win7 64位 ,VS2017 社区版;
    在每次运行vs2017会一直弹出提示addEventListener调用错误,根据弹出框中的路径,进入到
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Platform\DiagnosticsHub\WebViews下,打开UnsupportedBrowser.html文件,
    将里面的script标签中的语句全部注释掉,再重新运行代码即可

    展开全文
  • 但让我惊讶的是,几乎所有的声音里都充满着嘲笑与讥讽,有的剑指百度的价值观,那架势就好像李彦宏杀了他亲爹似的,有的这事与之前 “阿里云挂” 联系起来,调侃技术大厂与技术 “大肠” 等同,都是一群垃圾货抱...

    一周前,我的朋友圈被一篇 #百度某新员工发飙:前人代码写得像一坨屎,颠覆了对大厂的认知# 的文章刷屏了,评论区也非常热闹。

    但让我惊讶的是,几乎所有的声音里都充满着嘲笑与讥讽,有的剑指百度的价值观,那架势就好像李彦宏杀了他亲爹似的,有的把这事与之前 “阿里云挂掉” 联系起来,调侃技术大厂与技术 “大肠” 等同,都是一群垃圾货抱团,还有的则借题发挥,拿出自己的代码趾高气昂的对老板说 “瞧瞧,百度的程序员也不过如此,我们可比他们强多了”。

    早就想就此类现象发表一些观点,借这个机会,谈谈自己的看法。

    2007年初,我曾在杭州某游戏公司担任架构师,负责在线游戏点卡交易平台的设计与开发。当时游戏虚拟交易非常火爆,为了促进交易额的攀升,市场部的同学可算是动足了脑经,今天一个活动,明天一个促销,搞得研发的小伙伴疲惫不堪,不仅白天写代码赶工,而且晚上还要与运维一起值班守护。

    在当时那个时代,我觉得搞开发的都是一个祖师爷教出来的,无论你把任务分配给谁,也别管内容是啥,只要你连续指派同一类型的任务,他必定会给你抽象个公共服务出来,然后再和你大谈 “代码(或功能)抽象” 的强大特效,嘴里还不停地叨叨 “以后再遇上这样的业务,再也不需要硬编码了,只需要这么一配,那么一调,就搞定啦!”

    很多历史就是惊人的相似,信息产业的发展过去了那么多年,太多的事实表明,在缺乏经验与业务背景的前提下,大多数的抽象设计都是 “过度设计” 的产物。

    可想而知,随着这些 “抽象特效” 的陆续上线,BUG数直线上升,临时性补丁满天飞,好几次营销活动都险些酿成了惨剧,还好运气算不错,都有惊无险。

    就这样,公司的业绩也在技术颠簸中不断的发展壮大,并在半年内完成了新一轮的融资。

    2008年春节后,因部分核心开发的离职,我打算重新引入一些有经验的架构师,并对系统进行部分的重构。

    在连续看了几名候选人之后,我们选定了两名有电商背景的架构师,一个工作五年,一个工作七年,并确认一周后便能入职。正当我们打算大干一场的时候,这俩人却在入职一周后同时提出离职,这速度刷新了我当时的世界观。

    我有些郁闷,立即找他们谈话。

    在离职面谈中,他们向我倾吐了一些原因:

    • 命名没标准,无效命名太多,完全看不懂;

    • 注释几乎为空,代码逻辑全靠BUG;

    • 类继承关系混乱,把 “面向对象” 硬生生搞成了 “面向过程”,满屏的IF…ELSE……

    这几点,我用今天的话总结下:代码写的太烂,注释写的太没水准,这系统和人都带不动,我走了,再见。

    行,还算客气,并没有直接说出 “像坨屎” 这三个字。

    也许是因为不甘心,我一直努力的向他们诉说着整个系统的发展过程,希望他们明白 “好的架构不是设计出来的,而是演进出来的” 道理,可他们却在说完以上这些原因之后选择了沉默,不再说话。

    离开后,他们去了阿里,之后我也没再和他们联系过。

    回忆起当年的我,那个内心还比较纯真的年纪,如果你跟我说阿里的代码和注释都是金子镶成的,我也绝对会相信。

    这些年,我经历过一些所谓的大厂,也通过人脉关系了解过一些互联网头部企业的编码质量。

    不可否认,有些公司,有些团队的某些代码与注释,的确看起来像坨屎。

    几年前,我在大智慧,团队里有位五年经验的工程师,为了用Javascript实现一个 “Next Day”,不仅花了整整一周,而且在实现NextCurrentDay的时候,居然用Javascript从0开始手撸了一遍,这么一个Date+1的计算,还忘记算闰年。

    原本三天干完的活,他居然搞了一周,还居然不用Date对象,就算完全没有脚本基础,我想学过计算机的应该都会知道吧。

    不仅如此,他还把这个方法名取名为 “getAbc”,并且没有一行注释。

    在做CodeReview的时候,差点没把我气的背过气去,瞬间点燃了我的火爆脾气,指着他的鼻子,呵令他在三天内完成修改。

    没想到,这事过去没几天,他居然提出离职,并在离职面谈时向公司投诉,说我对他进行了人身攻击。

    更有意思的是,他居然去了某某大厂,拿到了比在大智慧高1.5倍的薪水。

    经过这件事,我觉得自己的人生观又一次被颠覆了。

    “你说我的代码和注释都写的像坨屎?恭喜你,答对了,那又怎么样?老子不伺候了。”

    你是否从这个事件中闻到了这股味道?

    我曾在很多公开场合抨击过当今的 “新一代” 程序员,而抨击的内容也无非两点,一是基础知识薄弱,二是自我要求不高。

    说到底,无非就是吐槽他们不了解内存结构,与数据库范式,甚至连基本的数据算法、二进制八进制十六进制转换之类的知识都不懂,或者是心态浮躁,满脑充斥着得过且过的价值观。

    现在想想,这也怪不得他们。

    互联网时代,是一个浮躁的时代,也是效率优先的时代,这不仅体现在技术圈,其他领域也一样。

    如果我问你,现在考个驾照大概需要花费多长时间?相信很多人都会回答:3个月左右、6个月内。但在我当年,或许要三年才拿到驾照。

    想要成为一名合格的司机,在这三年里,你不但要学习机械原理,还要掌握基本的修车技能,并通过 “师父带徒弟” 的实习期,才能拿到驾照。

    现在呢?只要你的智商能够分辨 “油门” 和 “刹车”,似乎拿个驾照,也就是半年内的事。

    有人说,时代造英雄,但别忘了,时代也造 “杀手”。

    在马路上,你会遇到 “马路杀手”,在技术圈,你同样会遇到 “一坨代码”。

    从古至今,似乎效率与质量一直是个矛盾,很多人也习惯拿这事来做挡箭牌。

    “为什么没写注释?”

    “因为赶工,没时间写呀”

    “为什么不用这个对象?为什么不取有效方法名?”

    “你又没跟我说,跑动就行了,你那么认真干嘛?”

    这些对话是不是特别熟悉?听上去是不是特别有道理?

    如果你也这么认为,我只想对你说,“你不但代码和注释写的像坨屎,技术价值观也像坨屎。”

    真是人不要脸,天下无敌。

    展开全文
  • 善用TODO注释(VS2012使用小技巧)

    千次阅读 2014-11-04 11:58:39
    大家在编码开发的时候,有时候为了便于调试往往就会错误处理注释掉。如果一个项目小则也罢了,随便源码翻一下就可以找到那些本不应该的注释。但是要是项目大呢?你怎么找,任凭你是火眼金睛也难以全部找出来。 ...
    场景1:
    大家在编码开发的时候,有时候为了便于调试往往就会把错误处理注释掉。如果一个项目小则也罢了,随便把源码翻一下就可以找到那些本不应该的注释。但是要是项目大呢?你怎么找,任凭你是火眼金睛也难以全部找出来。

    场景2:
    在团队开发或重构中,有些代码需要优化或需要别人完成时,可以使用此功能。

    全当做一点小提示不过去可以帮助你做很重要的事情。TODO,顾名思义,就是将要去。。。。将要做某事(细小任务)而没做。(个人理解)
    比方说我开始编码正写到关键时刻,但是突然有别的事不得不去做,因此需要暂时停止此项活动,因此需要写一些提示,以方便自己一会儿回来之后可以继续。

    写下这些代码。
    然后等下次回来我就可以在任务列表里找到。 

    它的强大不限于此,有兴趣的可以研究一下,此篇略过3w字!
    展开全文
  • 注释 关键字 标识符 常量 变量 数据类型 大小 类型转换 字符类型 (算术 赋值 自增自减 比较 逻辑短路现象 位移 三元) 运算符 都是日后经常会用到的,除了...使用 // 作用可以注释掉一行代码 , // 之后就是注释的部
  • 大家看我如下代码,我想getCitysByParentId()这个函数给注释掉,所以我在getCitysByParentId()这个函数外面用了一个多行注释,可是getCitysByParentId()这个函数的内部又有一个多行注释,导致了这2个多行注释匹配...
  • 关于代码的一些问题

    2020-12-01 16:57:35
    想方设法地把代码变得更简洁是错误的。而是说,代码是否精简与行数/字符数是没有必然联系的。因为编译器其实根本不在乎这个问题。编译器不会在乎代码是通过多少行完成的,只要是使用同样逻辑的代码ÿ...
  • 可能需要注释掉很多东西,那么我们此时可以选择之前我们已经提交到GitHub上的某些代码拉下来,先使用之前的东西给人先看看,但看过后我们就需要之前做到一半的东西拉回来了,那么应该怎么拉回来尼? 1.我们先...
  • 注意: 不需要很多的类库 全部下来只有三个文件 。一个类库和两个前台页面,你将类库放到AppCode下面。然后将账号绑定那一块注释掉就行了,...下面类的代码完全贴出,你知要一看见类,就知道怎么写前台页面了,很简单
  • 如题,需求如下,求解决办法,不限于题目。 公司新出的代码系统,没有注释,我写了大量注释,但暂时不能更新到版本库;...如果不使用svn更新注释就被冲了,如果建立svn连接,可能不小心我不准备提交的代码提交了。
  • 生成一个标识,如果是公司名称可能就会比较复杂,因为公司名称包含地市标识,还有什么有限公司,科技有限 公司等结尾,我们需要这个给切割,所以需要费一点功夫,后面我在代码里面会进行注释。 2、随机选取 一...
  • 1.为什么那句话注释掉以后输入评分会直接跳出循环? 2.gets(movies[i].title) != NULL && movies[i].title[0] != '\0'这个怎么理解,有什么用,两者有什么区别? ``` #include #define Tsize 45 #...
  • 有大佬知道为啥我跑Storm 时候 引了hbase-it的依赖...这个依赖注释掉就能正常执行了 ![图片说明](https://img-ask.csdn.net/upload/201909/18/1568817694_514567.jpeg) 不知道为什么 我的strom 代码是没问题的
  • 是因为xml里面有错 com.baosight.eplat.bp.rp.domain.ReprotGdzctzxmwcqk 因为这个代码没有提交,导致xml文件一开始就没加载成功 这个SQL注释掉就好了 还有一种就是多了一个空格问题 奥利给!!!
  • // 这里注释掉之后,不会在控制台打印,说明方法未调用 // 不注释则正常 // @Configuration public class FeignUploadFileConfiguration { @Bean public Encoder feignFormEncoder() { System.err.println...
  • 实在没办法,我不用函数模板了,template注释掉,T改成int型的,编译通过没有错误。 然后我又加上函数模板,int改回T,也就是完全变成开始的代码,编译也没错误了。 我又试着建了几个类似的项目,发生了同样的问题...
  • 你知不知道,普通女生梦见男朋友出轨会血液...“昨晚梦见男朋友和别的女人在逛街,梦里我的第一反应就是查源代码,结果调试半天查不出来为什么显示的那个女人不是我,最后含泪那个女人注释掉了,再一运行就是我...
  • 下面是代码 可其中出现了一个错误(做了标记),不知道怎么解决,可否有高手帮我看看,能不能稍作修改一下,做成正确的。 就是这句错了 myview = new BallView(this); package sen.tan; import ...
  • 重写数据库,顺便理清楚关系,加上代码注释。 同时可以考虑换皮肤的可能......还有。。。我靠,这个可以当做一个项目交了......已经搞定的: 可以帖镂空图,马上换所有的文字......oh yeah! 
  • 然后注释掉了创建文件夹这段代码,直接创建文件,就可以,代码我就不贴了。 ![图片说明](https://img-ask.csdn.net/upload/201602/08/1454903199_507168.png) 然后我试着在sd卡下的Download文件夹下,创建...
  • 在47-49的三行里,我写了两种算摇臂被选中的概率的方法,前一种是每选择一次摇臂,就根据公式将所有摇臂的概率更新一次,我觉得这种似乎比较合理,后一种被我注释掉的,是只更新当次被选中的摇臂的概率。两种实验...
  • 本人自学Android Studio,我在写一个新的App的时候,遇到一个问题,发现无论怎么修改Layout文件,哪怕是把代码注释掉,在模拟器上跑的时候也是没有修改之前的效果。 针对该问题,如果你使用的是Android Studio 3....
  • ckeditor的图片上传、预览问题

    千次阅读 2014-01-15 17:30:03
    怎么才能触发源文件文本框的onchange事件?  urlObj.fireEvent("onchange"); //触发url文本框的onchange事件,以便预览图片...上面的不起作用的代码注释掉,改成如下代码:  var browseObj = $("img[id$='preview
  • 重要重要重要:防止你们弄错以后记不得怎么还原,你们最好修改的文件备份一份,我这里面都是交你们注释掉之前的代码而不是删掉, 这是一种习惯哈 1.springboot文件都有一个启动文件xxxApplication,这个文件需要...
  • 附件里是如题的作业 我是使用Spyder作业加载进去,然后新建一个程序,一段一段运行的。用于检验的代码在运行之后一般就注释掉或者删掉了。 当时没有考虑怎么代码的规范性,以后会注意。
  • 6- 预处理的使用

    2020-12-23 17:01:10
    如果像上面那样,在代码里面去打开开关(定义宏)/关闭开关(注释掉宏定义),对于大型工程,不合适。怎么样可以不改动代码,直接编译时控制是否要显示调试信息? 如果#define ABC这一句去掉, ...
  • 一个CSS+JS的菜单栏DEMO(网上找的)

    千次阅读 2009-03-18 15:36:00
    这是效果图,支持透明,阴影,每级菜单的属性设置,如果需要在第一级菜单的右边有下拉箭头,需要修改JS就行了,我JS代码注释掉了。 去看看文件怎么上传上来.http://download.csdn.net/source/1119444 放到CSDN的...
  • textview.setText("本游戏由xxx制作,此游戏控制左右按键,来回移动挡板,不让小球落,当小球上方砖块全部打完时,游戏胜利"); } }); kaishi.setOnClickListener(new Button.OnClickListener(){ ...
  • 如题,,我们在开发测试阶段,一般是调试模式打开,有异常出现直接可以显示页面上, ...还有我们的一些用于调试模式的代码(如 try{ //代码 }catch($e){ //代码 })是否要在项目上线之后注释掉??

空空如也

空空如也

1 2 3 4 5 6
收藏数 115
精华内容 46
关键字:

怎么把代码注释掉