måndag 26 juli 2010

Pinnen!!

Retade gallfeber på mig själv genom att glömma minnespinnen när jag for till Norrköping i helgen, där jag hade fått chans att testkompilera min PP3-ersättare på Windows Cygwin¹ – mkmap skall den heta, och den skall ligga på sternons på Google Code. I alla fall, efter en del abstinens i att endast sitta och surfa efter källkod till stdio och bedöma om wide_char-versionerna av printf är "porterbara" till att bli locale-oberoende, så hackade jag igång igen igår kväll och förberedde med att göra utstyrningsparametrarna av stjärnkartan inläsningsbara från en konfigurationsfil likt i PP3. Förberedelserna bestod i att jag gjorde en klass för själva kartan – jo "klass", det är inte lätt att skriva objektorienterat i C, och koden blir knappast vacker, men det går².

¹  min egna Windows är död p.g.a. en skraltig hårddisk, där min primära första partition snabbt sönderfaller och blir oläslig för varje operativsystem efter formateringen.
²en fördel med att skriva objektorienterad C framför C++ är att i C har man inga virtuella tabeller likt i C++ – alltså globalt utpekade klasstabeller för en given objektinstans – vill man ha trubbel i C++ skall man anropa new samtidigt som man kör parallella trådar, pthreads eller fork, det ger mardrömslika fel som man kan offra veckor på att felsöka...
... man kan, med viss möda, skapa ett motsvarande klassobjekt i C som dock är ett minnesallokerat objekt som levereras med till funktioner, snarare än att de ligger globalt för trådar att rycka bort under fötterna på programmeraren under kodens exekvering...

Inga kommentarer: