首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >恒定值的静态分析

恒定值的静态分析
EN

Stack Overflow用户
提问于 2014-11-28 20:03:11
回答 1查看 331关注 0票数 0

如果我正确理解,静态分析可以猜出变量可以有哪些值,并推断,例如,控制流图中的路径永远不会被执行。

我有一个常量字符串CStr数组。一种方法GetValue在参数中接受索引,并进行一些计算,以查找CStr数组中的实际索引,并返回指向该索引的const字符串。

编辑:对于给定给GetValue的每个参数,实际索引都是唯一的和常量的。

静态分析能猜出GetValue(x)会有一个常数吗?如果是的话,是怎么做的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-28 20:05:26

“静态分析能猜出GetValue(x)将有一个常数值吗?”

这完全取决于静态代码分析工具的功能和质量。

从理论上说是的。

如果您的意思是编译器可以推断出常量表达式,那么它也取决于编译器的实际实现。

你可以给它最好的提示,就是使用constexpr关键字。

代码语言:javascript
复制
 constexpr int GetValue(int x);

“如果是,是怎么做的?”

这是一个非常广泛的领域,在这里很难给出一个简明的答案。

基本上,静态代码分析工具可以跟踪特定函数的调用引用。如果可以推断这些函数的结果是在编译时指定的值(例如,由于静态初始化),则已知从调用函数访问的地址的实际有效大小/索引,如果超出界限,则可以标记为问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27195239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档