c++ - 是否有静态分析器可以检查 C/C++/Objective-C 中的局部变量重新分配?

标签 c++ objective-c c constants local-variables

在 C/C++/Objective-C 中,有没有什么方法(例如编译器标志)可以自动设置 ALL 局部变量 const 而无需说明符?就像函数式语言中的 let 语义一样。

因为我想给所有的局部变量都设置const,但这太烦人了,而且代码可读性差。如果我可以默认设置所有局部变量 const,并且我可以手动设置一些变量 mutable,那对我来说会很棒。但我从未听说过。

如果你知道什么请告诉我。


编辑

阅读回复后,我对此进行了更多思考。我强烈同意它会破坏强大的 C 约定(或标准?),因为它已经默认定义为可变的。

所以我的想法正在变成另一种形式。一种静态分析器。不是编译器。 如果某个工具可以检查重新分配的局部变量,并且可以定义任何标记可变变量的机制(例如,一个特定的空预处理器符号),这对我来说将是完美的工具。而且,它不会破坏 C 约定。

所以我稍微更改了问题标题并添加了这段文字。

最佳答案

... 有点像使用宏的错误:

int main () {

 #define int const int
 #define float const float

 int x = 5;
 float y = 5.3;

 #undef int
 #undef float

 return 0;
}

您甚至可以将这些 def 和 undef 分成两个不同的 header ,这样您的代码看起来会更干净一些:

int main () {

 #include "all_vars_const_begin.h"

 int x = 5;
 float y = 5.3;

 #include "all_vars_const_end.h"

 return 0;
}

但我不确定这种风格是否可以。

关于c++ - 是否有静态分析器可以检查 C/C++/Objective-C 中的局部变量重新分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11862844/

相关文章:

c - linux kernel "listen"如何到C库?

c++ - 未使用与类相同的名称调用函数

objective-c - 有没有一种简单的方法可以在 xcode 中自动完成 block 变量?

c++ - 快速库替换CDC vector 图

objective-c - 以编程方式更改 NSButton 状态和绑定(bind)值

ios - 使用Base SDK 6.1在iOS7外观上运行的Xcode 5

c - c语言排序数组错误

mysql - 检查 UTF-8 的输入,计算字符数,使用正则表达式

c++ - 为什么模板的静态成员在稍后在同一翻译单元中定义的对象之后初始化?

c# - 如何添加实现 C++ 接口(interface)的标签?