Forum: Compiler & IDEs Indexnumerierung


von Mutti (Gast)


Lesenswert?

Hallo, ich habe folgende 64 Datenregister zum beschreiben vorgesehen. 
Diese heißen alle WRDS und dann die Nummerierung.

WRDS01
WRDS02
WRDS03
...
WRDS64

Die Namen sind festgelegt.
Das ist ne üble Sache alle einzeln unternander zu beschreiben. Ich würde 
lieber eine FOR Schleife verwenden. Kann ich die Nummerierung da 
irgendwie mit reinbringen?
In diesem Format:
1
for (i=1;i<65;i++) {
2
WRDS[i] = ...
3
}

?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn die 64 Datenregister durch ein Array ersetzbar sind, dann ja. 
Liegen die Teile im Speicher linear hintereinander?

Achte aber darauf, daß in C der erste Arrayindex 0 ist.

Also NICHT

  for (i = 1; i < 65; i++)

sondern

  for (i = 0; i < 64; i++)

von pumpkin (Gast)


Lesenswert?

ja. ein beispiel für ein integer-array:
1
int WRDS[64] = {0};  /*64 integer in einem array, erster wert wird z.b. mit WDRS[0] angesprochen*/


pumpkin

von Mutti (Gast)


Lesenswert?

ok, der erste Index beginnt bei Null.
Aber zum besseren Lesen des Codes will ich ab 1 anfangen. Die [0] bleibt 
einfach ungenutzt.

Kann man doch machen?!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Kann man zwar, sollte man sich aber gar nicht erst angewöhnen. Der Code 
ist dadurch nicht lesbarer, sondern eher massiv fehlerträchtig, da kein 
anderer C-Programmierer auf diese, ähm, merkwürdige Idee käme.
Lass es besser sein.

von Ulrich (Gast)


Lesenswert?

fange lieber bei 0 mit zaehlen an. Mit der zeit gewöhnt man sich dran. 
Das ist einfach der stqandart und wenn man mal mit fremdem Code arbeitet 
hat man keien Probleme

von pumpkin (Gast)


Lesenswert?

kein problem, aber nicht schön (wie auch Rufus schon meinte):
1
int WRDS[64] = {0};
2
3
for(i=1; i<=64; i++)
4
{
5
  WRDS[i-1] = ...
6
}

pumpkin

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nein, auf solche "Lesbarkeits"-Experimente sollte man sich nicht 
einlassen. Gar nicht erst damit anfangen. Wirklich nicht.

von Karl H. (kbuchegg)


Lesenswert?

Die erste Version der 'Numerical Recipes in C' hatte so ein
abstruses Schema benutzt um den vorher verwendeten Pascal Code
auf C umzusetzen.
Das Resultat: Das Werk war voll mit Fehlern.

In C wird mit 0 zu zählen angefangen. Das sollte man
einfach so akzeptieren.

von Falk (Gast)


Lesenswert?

@Karl heinz Buchegger

>In C wird mit 0 zu zählen angefangen. Das sollte man
>einfach so akzeptieren.

Wenn sie in C programmieren will muss sich Mutti sowieso von 
Hausfrauenlogik verabschieden.
duckundwech

SCNR ;-)
Falk

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Karl heinz Buchegger wrote:
> Die erste Version der 'Numerical Recipes in C' hatte so ein
> abstruses Schema benutzt um den vorher verwendeten Pascal Code
> auf C umzusetzen.

Ist das in der aktuellen Ausgabe anders?

von Karl H. (kbuchegg)


Lesenswert?

Weis ich nicht.
Ich hab noch die mit den Fehlern gekauft.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Also die Fehler mögen korrigiert sein, aber das mit dem Index ab 1 wird 
zumindest in der Ausgabe auf books.google.com immer noch gemacht.

von Frank (Gast)


Lesenswert?

Im K&R Buch fand ich es logisch erklärt:
Der Index ist der Abstand vom ersten Element. Also wert(0) ist 0 Abstand 
vom ersten Element, der erste Wert.

Übrigens: Informatiker am Bahnhof: "0, 1, 2. Wo ist mein dritter 
Koffer?"

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.