Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Lukuarvon nimen näyttäminen debuggerissa

Poika [14.10.2016 00:26:56]

#

Teen C++ ohjelman ydintä Code Blocksilla ja käyttöliittymän Qtn C++:lla.
Ydintä teen ihan vain console ohjelmana ja tarkoituksena on pitää ydin ja käyttöliittymä ohjelman kehityksen aikana selvästi erillään.

Joitakin muuttujia, tai enemmänkin vakioita olen määritellyt näin:
#define Accident 4

Debuggauksen vuosi haluan laittaa joitakin muuttujia stringeiksi jotta niiden sisältö näkyisi debuggerissa, muutoinhan tuo näkyy vain nelosena. Toisekseen niitä pitäisi pystyä koodissa vertailemaan yhtä yksinkertaisesti kuin kokonaislukuja.

Minkä kirjaston stringiä kannattaisi käyttää ettei linkitysongelmia tulisi myöhemmin vastaan?

Metabolix [14.10.2016 17:53:56]

#

Oikea ratkaisu voisi olla #define-rivien vaihto vaikkapa enumeraatioon ja kyseisen tietotyypin käyttäminen koodissa oikein, jolloin hyvä debuggeri osaa näyttää arvon ihan nimeltä.

enum CauseOfDeath {
  Accident = 4,
  SubstanceAbuse = 5
};

CauseOfDeath whyJustinBieberDies = SubstanceAbuse;

Jos on jokin ihan oikea syy käyttää merkkijonoja, voit käyttää Qt:n merkkijonoa, jolloin koodisi kuitenkin on riippuvainen Qt:stä, tai voit käyttää C++:n std::string-luokkaa, jolloin kommunikaatio Qt:n kanssa vaatii ylimääräisiä muunnoksia. Ei tähän pitäisi liittyä mitään linkitysongelmaa.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta