Software > Coding

C Code mit CC65 - nächste DAU-Frage

(1/4) > >>

matashen:
ich machs kurz

wie definiere ich zwei Bedingungen

wie
if (i=1) and (j=0) anweisung1;

Das and will der CC65 nicht akzeptieren also geh ich davon aus das C-Code hier wieder irgend einen Blödsinn vorschreibt und mit den drei Buchstaben und nix anfangen kann.

Noch ne Frage wäre.
Wie mach ich nen Zufallsgenerator?

Schon mal danke für die Hilfe

Gruß Matthias

tuxie:
SO?

if (i=1) && (j=0) anweisung1;

Dennis Schulmeister:
Ingo hat Recht. In C-ähnlichen Sprachen werden die Operatoren nicht ausgeschrieben. Stattdessen gibt es Symbole

& bzw. && - AND
| bzw. || - OR
! - NOT
== - Prüfung auf Gleichheit !!!!! (Bitte nicht = verwenden, da das der Zuweisungsoperator ist!!!)

Der Unterschied zwischen &, | und &&, || ist, dass im letzteren Fall die Auswertung des Ausdrucks (von links nach rechts) abbricht, sobald das Ergebnis klar ist. z.B. false && true wertet nur den linken Teil aus, da durch den AND-Operator der Ausdruck nicht mehr true werden kann ...

Im Übrigen kann ich nur empfehlen, auch einzeilige Blöcke als Blöcke zu definieren. Also so:

if ((i == 1) && (j == 0)) {
  Anweisung;
  Anweisung;
  ...
}

Alles Andere ist meiner Meinung nach sclechter Stil und führt nur zu schwer zu findenden Fehlern!

Wg. dem Zufallsgenerator könntest du mal nach einer Funktion rand() suchen. Hat CC65 eine math.h? Da ist der sicher drin.

Gruß,
Dennis 8)

matashen:
Danke für die ausführliche Darlegung.

Ein Math.h hat der CC65 nicht.

Gruß Matthias

Dennis Schulmeister:
Einen für den Hausgebrauch ausreichenden Zufalszahlengenerator kann man einfach selbst programmieren als:

(Primzahl ^ k) mod n;  k bei jedem Zug hochziehen, n = Maximum

Meine ich zumindest, im Hinterkopf zu haben ...

Gruß,
Dennis 8)

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln