1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Wie verwaltet C seinen Speicher?

Discussion in 'Programmieren' started by jensencom, Jun 27, 2007.

Thread Status:
Not open for further replies.
  1. jensencom

    jensencom ROM

    Hallo,

    ich habe ein großes Problem mit der benötigten Rechenleistung meines Programmes. Daher will ich soviel wie möglich Schleifen sparen.

    Akutes Problem:
    Ich habe ein Array[100] aus 1x Real und 17*Bool Variablen. Diese werden mit Daten beschrieben, es können jedoch Daten von vorher drin stehen, die ich, sofern ich nicht auf alle Variablen des Arrays zugreife, eliminieren muß.

    Wenn ich nun das Real und 13x Bool geschrieben habe, muß ich 4 Bool´s nullen, das mache ich in einer for-Schleife.
    Kann ich nicht ebensogut ab dem vierten Bool einfach eine binäre "0000" hineinschreiben? Dann wäre das in einem einzigen Abwasch genullt anstatt in einer 4-fachen for-Schleife...
    Auf die Idee kam ich, weil ich schon ohne Fehlermeldung über die 100 Felder meines Arrays hinaus geschrieben habe, und diese Daten dann in anderen Speicherbereichen zur Verfügung standen...

    Wenn das ginge, wie gebe ich die binäre Zahl ein?


    MfG

    jensencom
     
  2. Michi0815

    Michi0815 Guest

    bool ist nicht nur 1 bit sondern (je nach einstellung) ein word oder dword. lustig, oder? muss es unbedingt bool sein oder tut es auch z.b. ein long-wert, dem du die einzelnen bits setzt?

    btw...
    eine schleife mit 100 durchläufen, die nur ein paar werte im speicher ändert interessiert cpu's ab 286'er tempomäßig nicht wirklich.
     
  3. jensencom

    jensencom ROM

    Hallo,

    danke für den Hinweis, also klappt das nicht ganz so einfach...

    Wenn man mit der Rechenleistung an seine Grenzen kommt, ist jede einzelne Operation wert zu sparen.

    Im übrigen, worst Case brauche ich
    16 * 15
    + 2^15 * 14
    + 2^14 * 13
    + 2^13 * 12
    +
    .
    .
    .
    + 2^2 * 2

    Macht insgesamt 852212 For-Schleifen, die ich maximal brauche, von denen nur ca. 200 nötig sind.

    Naja, muß ich mir anderweitig Gedanken machen...

    Aber Danke ;-)

    Gruß

    jensencom
     
  4. jensencom

    jensencom ROM

    Ooops...

    Ich hab mich da wohl verschrieben...

    Ich habe einen Real und 17 USINT, also einzele BYTE nicht BIT...
     
  5. Michi0815

    Michi0815 Guest

    wie ist denn deine daten/programmstruktur genau aufgebaut? hast du schleifen in den schleifen oder sind die schleifen hintereinander?

    möglicherweise lassen sich die restlichen werte z.b. mit fillchar in einem durchgang füllen?
     
Thread Status:
Not open for further replies.

Share This Page