[技術]なぜ変数を変更することが時々自由マイクロコントローラCプログラミング言語、

KEILにインターフェイスタッチスクリーンを切り替えるため、変更されたシングルチップ状態マシングローバル変数の定義したC言語を使用して、最近のプロジェクト、

しかし、プログラムは問題がある実行されている、ステートマシンの数は、常に問題は、デフォルトのインタフェースにジャンプすることはできません通常のタッチスクリーンで、その結果、変更を当惑され、

検査と分析した後、二つの理由があるかもしれません。

•)グローバル変数と同じ名前の重複定義のローカル変数。同じ名前のグローバル変数を定義し、サブルーチンの内部で変数の値を変更するローカル変数があるかもしれません。

•)volatile修飾子の欠如。C言語volatile修飾子が使用されていないが、その役割は、変数を最適化するために、コンパイラを防ぐために変更された変数をクリアすることであるので、プロセッサはむしろレジスタよりも、実行時にメモリからデータを読み込むたびにそのバックアップデータ。このコマンドは、グローバルな変更が重要な変数で重要な役割を果たしているだけのために推奨されます。

使用方法:ユーザーが定義:揮発性unsigned char型のA; //文字変数aを定義します

検査は、プログラムで変数を定義するとき、問題が解決された後、揮発性の修飾子を追加し、第二の理由です。

私の懸念は、技術開発、効率的思考、財務およびその他のこまごまとを共有しました。マイクロチャンネル公共数:yonkotech

おすすめ

転載: www.cnblogs.com/yonkotech/p/12457776.html