< Ontwerp en bouw een besturingssysteem < Blue Screen of Death
Dit artikel is een beginnetje. U wordt uitgenodigd op bewerken te klikken om uw kennis aan dit artikel toe te voegen.

Het is zeer handig om getallen in decimaal en hexadecimaal te kunnen afdrukken.

Hiervoor definieren we de functie String_Format in string.c (en de declaratie in string.h):

/kernel/src/string.c

#include <string.h>

// Formatteert de gegeven format-string en argumenten.
achar* String_Format(const achar* format, ...)
{
    va_list args;
    achar buffer[1024];
    
    va_start(args, format);
    String_FormatBuffer(buffer, format, args);
    va_end(args);
    
    return buffer;
}

// Formatteert de gegeven format-string <format> en de argumenten <args> en plaatst
// het resultaat in <buffer>. Als de buffer niet groot genoeg is, treed er een buffer overflow op.
// De syntax van <format> is {i:F} waarbij i de index van het argument is (het eerste argument
// heeft index 0) en F de format-string is (bijv. hexadecimaal is 'X').
unint String_FormatBuffer(achar* buffer, const achar* format, va_list args)
{
    ...
}

TODO: Wat is va_list, va_start, va_end, va_arg etc... Hulpfuncties?

 

This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.