Hallo,
ik probeer voor een embedded system (PIC16 serie) een printf functie te schrijven. Nu kan de 'echte' printf een onbepaalt aantal argumenten nemen (naast de standaard const char * kan je zoals je zal weten een onbepaalt aantal argumenten met variabelen opgeven). Hoe ik dat zou moeten opschrijven is als volgt:
void printf(const char* string, ...) { /* Code */ }
Nu is de vraag dus: Hoe berijk ik de argumenten onder de punten. Ik heb wel gevonden dat ze op een stack zitten, daar zal ik ze af kunnen poppen, maar waar zit dat stack? Is dat het gewone hardware stack of wat? En hoe weet ik waar de argumenten beginnen / eindigen?
BVD
ik probeer voor een embedded system (PIC16 serie) een printf functie te schrijven. Nu kan de 'echte' printf een onbepaalt aantal argumenten nemen (naast de standaard const char * kan je zoals je zal weten een onbepaalt aantal argumenten met variabelen opgeven). Hoe ik dat zou moeten opschrijven is als volgt:
void printf(const char* string, ...) { /* Code */ }
Nu is de vraag dus: Hoe berijk ik de argumenten onder de punten. Ik heb wel gevonden dat ze op een stack zitten, daar zal ik ze af kunnen poppen, maar waar zit dat stack? Is dat het gewone hardware stack of wat? En hoe weet ik waar de argumenten beginnen / eindigen?
BVD