纠纷奇闻作文社交美文家庭
聚热点
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

致C完美主义者:使用VisualStudio新工具。。。

11月19日 海岸线投稿
  官宣IntelliSenseCodeLinterforC
  在VisualStudio2019v16。6Preview2中,我们高兴的宣布一项针对C开发者的新功能:IntelliSenseCodeLinterforC。这项新功能旨在帮助C开发者在编写代码的时候能快速定位和修正可能存在的代码缺陷。它会在你编写代码的时候,在编辑器中以下划线的方式,实时地的显示代码中存在的问题并给出建议的修改措施。
  有图有真相
  这项新功能构建在VisualStudio现有的CIntelliSense基础之上。
  这意味着,代码扫描将比之前的后台代码分析更快,从而更早地给出分析结果。
  为了确保IntelliSense组件以尽可能快的速度运行,旧版的linter组件主要关注在那些很容易被发现的问题上。
  新版本的linter将作为现有代码分析工具(例如MSVC的后台代码分析或者ClangTidy)的一个重要补充,同时可以对复杂的代码场景进行分析处理。
  你可以在VisualStudio的〔工具选项〕菜单中打开这个预览版功能,如下图所示:
  设计目标
  当我们考虑要怎么做才能实现出一个比较好的代码分析工具时,我们将如下的几个目标作为Linter的设计目标。
  1)我们希望Linter能尽可能地找出那些让C开发者感到意外的代码缺陷,尤其是来自其他语言的开发者。通过这样的代码检查,可以使某些C语言功能的学习曲线变得平滑。
  2)这个工具应该可以提供针对具体问题的建议。就像IntelliSense可以侦测出可能会导致构建失败的语法错误一样,Linter应该可以帮助您在代码构建之前就识别并修复逻辑和运行时错误。
  3)Linter应该能找出那些可以被解决的问题。虽然最终这只是代码风格和哲学问题,但总的来说,它们只关注导致实际Bug的代码缺陷。
  会进行哪些代码检查
  我们根据上面提到的三个设计目标,我们在Preview2版本中实现了以下的几个代码检查。
  ArithmeticOverflow
  此代码检查将查找:使用32位数据类型进行算术运算,然后赋值给更宽的类型的情况。将一个32位的变量分配给更宽的类型,可以很好地表明开发者认为变量的值可能超出32位类型的范围。在C中,表达式将被认为32位的,这可能会算术溢出,然后将溢出后的值赋值给更宽的类型变量。
  IntegerDivisionAssignedtoFloatingPoint
  此代码检查将查找:将整数除法的结果赋值给一个浮点数的情况。将一个表达式赋值给一个浮点类型,可以很好地表明开发者想要结果的小数部分。在C中,会先对整数除法求值,并且在将结果分配给浮点类型之前,舍弃小数部分。
  LogicalBitwiseMismatch
  此代码检查将查找:将逻辑运算符与整数值一起使用或将按位运算符与布尔值一起使用的情况。在C中,由于存在隐式转换而允许这样做,但是这种做法容易出错,并且会降低代码的可读性。
  AssignmentEqualityMismatch
  在条件表达式中使用赋值运算符在语法上是正确的,但在逻辑上可能是错误。此代码检查将会查找在条件语句中将一个常量分配给变量的情况。这几乎总是不正确的,因为它会导致条件语句始终为true或false。
  AccidentalCopy
  C中的auto关键字是一个很棒的功能,尤其是在和模板代码打交道时。这个关键字有一种很微妙的行为,会让一些C开发者混淆或轻易忽略。auto不会推断出引用,因此,如果将返回引用的表达式赋值给了一个声明的变量,则会导致变量复制。虽然这并不总是一个错误,但是我们想帮助开发人员意识到当前语句会导致复制,尽管有时可能这是并不是开发者想要的。
  UninitializedLocal
  默认情况下,C中的内置类型变量没有是不会被初始化的。这可能导致运行时不确定的行为。这项代码检查的实现是非常激进的,它会在没有变量已声明但是没有初始化的情况下发出警告。
  接下来
  新的Linter仍在开发中,下面列出了一些将来版本中会出现的新功能。
  1)配置:当前这个功能只能被整体的启用或禁用。目前还不能支持启用禁用或更改某个检查的严重级别。
  2)禁用某些警告:许多代码分析工具可以按实例里禁用警告。这通常是通过在源代码中使用注释(例如使用pragma或代码注释)来实现,但是当前Linter还不支持这种功能。
  3)与其他代码分析工具集成:Linter检查目前只能在IDE中运行,因此它不能作为持续集成流程中的一部分。如果有这种集成需求,则需要继续使用基于编译器的代码分析工具(例如,MSVC和ClangTidy)。
  当启用〔后台代码分析〕后,您可能会从MSVC或ClangTidy的代码分析中看到绿色的波浪提示,这将导致它与编辑器中的Linter检查出现重叠,进而你会看到重复的检查结果。
  总结
  有段时间,我还认真地研究过一个C的Linter插件。
  那个时候,需要手动在VisualStudio中进行配置才能使用。
  后来怎么着了:写代码的时间都不够了,哪有什么功夫对代码进行分析呐。
  生活真是不易啊!
投诉 评论 转载

抖音怎么开店教程,抖音开店赚钱吗?如何在抖音开店?人人刷抖音的朝代,使得短视频成了当下电商需要流量丰富的新蓝海,而小程序上线之后,抖音曾经集齐了三大开店带货形式:商品橱窗、抖音小店、天店商品流通城。……抖音怎么加封面,抖音如何设置统一封面实则抖音书皮对晋升播放量是有很大的扶持的。尤其在你集体网页里,一个好的书皮,是能让你get到每个视频的亮点,从而经过一个爆款视频,晋升之前视频的点击量的。同声,在抖……SVN基础教程(第二节)Subversion(SVN)是一种开放源码版本控制系统,也就是说,它可以随时管理数据变化。该数据被存放在中央信息档案库(repository)。该档案机构与普通文件服务器非常……R语言逐步多元回归模型分析长鼻鱼密度影响因。。。原文链接:http:tecdat。cn?p9564目录如何做多元回归逐步回归选择模型逐步程序定义最终模型方差分析预……抖音Dou怎么投效果最好,抖音DOU投了就有。。。我觉得作为内容社交媒体,内容永远都是关键的,当然,2019年抖音里的微剧能火,与平台鼓励长视频发展,给予流量倾斜有关,存在一定的运气成分,但DOU这个影响我觉得很小。如果……FANUC数据相等判断功能指令EQBFANUC数据相等判断功能指令EQBEQB指令在FANUC梯形图中,若需要判断两个数据大小是否相等,通常会使用大小判别功能指令“COMPB”与一致性判定功能指令“C……致C完美主义者:使用VisualStudio新工具。。。官宣IntelliSenseCodeLinterforC在VisualStudio2019v16。6Preview2中,我们高兴的宣布一项针对C开发者的新功能:Intel……刚刚,微信电脑版内测新功能,游戏也能在微。。。前几天,iOS深色模式支持深夜模式,》》微信暗黑模式来了!这里有完整教程,随后马上android版本的深夜模式后来也上线了。微信PC版微信测试版forWindows2。9……图形化编程娱乐于教,Kittenblock实例,电子。。。跟很多学生聊过,很多学生不是不努力,只是找不到感觉。有一点不可否认,同样在一个教室上课,同样是一个老师讲授,学习效果迥然不同。关键的问题在于,带入感,我能给出的建议,就是咬咬牙……R语言对回归模型进行协方差分析原文链接:http:tecdat。cn?p9529目录怎么做测试协方差分析拟合线的简单图解模型的p值和R平方检查模型的假设具有三类和I……求100000内的素数效率问题求100000内的素数从2开始到自身的1的数中找到一个能整除的从2开始到自身开平方的数中找到一个能整除的一个合数可以分解成……抖音黄v认证能增加推送吗?如何涨粉丝抖音的走红是没有任何征兆的,仿佛在一夜之间就成为了年轻人最喜欢的一种玩乐方式。如果玩抖音玩得好,还是非常赚钱的,不过,这个还要看我们的粉丝有多少,看抖音账号等级。抖音有蓝v和黄……
如何使CAD中的图形快速居中显示Word2010自动弹出信息检索怎么办输入的数字间隔很大怎么解决?一级注册消防工程师在哪报名,怎么报名考试excel2007的标签页不见了怎么办?eclipse工具栏不见了怎么办CAD图纸如何打印出图人生必读的五本好书HTML网页制作:插入表单赫瑞瓦特大学战略项目管理专业课程设置及入学要求解析澳洲昆士兰大学环境科学专业好不好?考科目一后多久考科目二最好,科目一成绩多久有效
一个死人的报复,你想不到你知道吗刺激女性私处需要注意的问题膀胱肿瘤老人有什么护理需求延吉人民体育场冰雪项目开放市民尽享冬日时光好文:鸡蛋玉米豌豆饼的做法热评聚热点网 秋天穿什么裤子好看加足时髦指数写错房产位置的遗嘱有效吗?复活节兔子为什么恐怖兔子蛋上涂上血的颜色看着恐怖考作文题目请让我vs走过所有的遇见都是一种偿还千秋岁引刘国梁为什么这么看好孙颖莎?

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形