Ontwerp en bouw een besturingssysteem/Blue Screen of Death/Waardes weergeven

Uit Wikibooks
Wikipedia
Dit artikel is een eerste opzet. 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.

[1]

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?  

Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.