2

C/C++/Objective-C で指定子なしですべてのローカル変数を自動的に設定する方法 (コンパイラ フラグなど) はありますか? 関数型言語のセマンティクスとconst同じです。let

すべてのローカル変数に設定したいconstのですが、煩わしすぎてコードが読みにくくなります。デフォルトですべてのローカル変数constを設定でき、一部の変数mutableを手動で設定できるとしたら、それは私にとって素晴らしいことです。しかし、私はそれについて聞いたことがありません。

何かご存知でしたら教えてください。


編集

回答を読んでもう少し考えてみました。そして、デフォルトで変更可能としてすでに定義されているため、強力なCの慣習(または標準?)を混乱させることに強く同意します。

だから私の考えは別の形になりつつあります。一種の静的アナライザー。コンパイラではありません。何らかのツールが再割り当てされたローカル変数をチェックでき、変更可能な変数 (たとえば、特定の空のプリプロセッサ シンボル) をマークするメカニズムを定義できる場合、それは私にとって完璧なツールです。また、C の規則を乱すこともありません。

そこで、質問のタイトルを少し変更して、このテキストを追加しました。

4

1 に答える 1

1

...マクロを使用することによるエラーの並べ替え:

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 を 2 つの異なるヘッダーに分けて、コードが少しきれいに見えるようにすることもできます。

int main () {

 #include "all_vars_const_begin.h"

 int x = 5;
 float y = 5.3;

 #include "all_vars_const_end.h"

 return 0;
}

でも、このスタイルでいいのかわからない。

于 2012-08-08T12:40:55.093 に答える