1

C の初心者です。誰かがこの問題を解決するための読み物の方向を教えてくれるのではないかと考えています。2 つのレジスタと変数があります。

Register->Foo;
Register->Bar;
myVar;

myVarは数学関数の出力であり、結果はRegister->Foo何サイクルも繰り返し書き込まれ、ボタンが押されるmyVarと、何サイクルも繰り返し書き込まれRegister->Barます。

現在、次のようにサイクルごとにチェックを行っています。

if button not pressed:
    write myVar to Register->Foo
else
    write myVar to Register->Bar

しかし、命令サイクルごとではなく、ボタンが押されるたびにチェックを行う必要があるだけです。ボタンを押すだけで myVar が指す場所を変更し、ボタンが再度押されるまですべてのサイクルでその設定を保持するにはどうすればよいですか? このようなことは可能ですか?

OutputRegister = myVar // have this run all the time inside a loop

// somewhere else
OutputRegister = Register->Foo or Register->Bar 
// depending on button
// What data structure or method can I use to make this!
4

2 に答える 2

0

追加の変数を使用しますis_assigned。ボタンが押されると、ゼロ (「false」を意味する) に設定され、条件と割り当てを次のように変更します。

if (button_not_pressed && !is_assigned)
{
    if (button_not_pressed)
        Register->Foo = myVar;
    else
        Register->Bar = myVar;

    is_assigned = 1;
}

これは、 whenbutton_not_pressedが true で、is_assignedfalse の場合、内部のステートメントを実行することを意味します。その後is_assignedtrue に設定されるため、次の反復では条件は false になります。

于 2013-07-25T17:19:41.690 に答える