[Hobby/Unerfahren] Suche Interessent für Bibliothek-Development

  • Auf welchem Niveau darf das ganze denn sein? Reicht schon folgendes?


    PS:

  • Auf welchem Niveau darf das ganze denn sein? Reicht schon folgendes?


    PS:

    Anfänger Niveau reicht! :saint: Das meiste kann man dann von mir erlernen falls die Erfahrung/das Wissen zu Tasks fehlen:P


    Zum Code:

    Erfüllt zwar sein Zweck, aber nicht zu vergessen dass beim Kernel Development die Compiler Code Optimierung ausschließlich fast deaktiviert ist oder auf Opt. Stufe #1.

    Das bedeutet dass der Code den du hier oben geschrieben hast fast 1:1 übernommen wird, der ist aber recht langsam.


    Auf richtigem Niveau würde man via words/longwords den string abgleichen/zählen. Da das aber kompliziert ist und ich ungern C&P verwende (Siehe GNU GCC strlen),

    würde folgendes ausreichen:

    Das ist ein originaler Ausschnitt meiner strlen(...) Funktion im Kernel (So haben die meisten die Funktion implementiert). Kurz erklärt; Wir übergeben die Variable str

    an Variable s, welche mit dem Keyword "register" deklariert ist - So, falls möglich, ist der String nicht mehr im RAM sondern in einem CPU-Register. Die CPU-Register sind viel schneller als der Direktzugriffsspeicher (RAM), somit können Datenverarbeitungsoperationen schneller verarbeitet werden. Die terminating zero ('\0'/0) gibt immer 0/false zurück, deswegen reicht es im for-loop an zweiter Stelle einfach *s anzugeben da all die anderen Zeichen true zurückgeben, bzw. eine Zahl größer als 0. Falls größer als 0, inkrementieren wir um eine Position @variable s, prüfen den Wert der Position und nachdem auf 0 getroffen wurde return'en wir die Differenz der beiden subtrahierten Variablen. Schon haben wir die string-länge der Variable str :P

  • sikerim hab interesse kik