Gast
#1247713
Hallo, ich bin gerade dabei mich in c einzuarbeiten und bei dabei auf folgende zeile gestoßen,
1 | |
ich frage mich wann eine 1 und wann eine 0 retuniert wird.
|
Anzeige
|
unverständliche Zeile in C-Code
Gast
#1247713
Hallo, ich bin gerade dabei mich in c einzuarbeiten und bei dabei auf folgende zeile gestoßen,
ich frage mich wann eine 1 und wann eine 0 retuniert wird. if (PINC & _BV(0)){
return 1;
}else{
return 0;
}
^^
Gast
#1247718
Wenn mich nicht alles täuscht, heisst das umgeschrieben einfach so:
[c]
if (PINC & _BV(0))
{
1
}
else
{
0
}
[/code]
Gast
#1247723
erstmal danke, ich bekomme also eine 1, wenn ich an den vierten PIN von PORTc 5v anlege?
Gast
#1247726
Das Dingen schimpft sich Ternärer Operator. Geht so: ( (Bedingung) ? (Wahr-Wert) : (Falsch-Wert) )
Gast
#1247737
ich wage mal einen schuss ins blaue ^^ wenn an PORTC der pin PB0 1 ist wird 1 zurückgegeben wenn PB0 0 ist wird 0 zurückgegeben das xxx ? 1 : 0 ist glaube wie eine IF (xxxx) 1 ; else 0; c_anfänger schrieb: > erstmal danke, ich bekomme also eine 1, wenn ich an den vierten PIN von > PORTc 5v anlege?
Wie kommst du da auf den vierten Pin? _BV(x) ist nichts anderes als
damit ergibt sich 1 << 0, bzw. ausgerechnet halt 1. Wenn du nun PINC damit maskierst, bleibt eine Eins übrig, wenn Bit 0 eine Eins liefert. Noch was: Lass die Klammern um den ganzen Return-Ausdruck weg, return ist keine Funktion.
Gast
#1248239
>ich wage mal einen schuss ins blaue ^^ Wohl eher in ein sehr dunkelblaues Etwas mit Schornstein dran. >wenn an PORTC der pin PB0 1 ist wird 1 zurückgegeben wenn PB0 0 >ist wird 0 zurückgegeben Wäre das das Ding reif zum patentieren. Wenn PB0 == Pin0 an PortB 1 wird... Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|