středa 15. ledna 2014

Vypsání hodnoty #define preprocesorem jako #pragma message


#define MSG1 0x58
#define MSG1 13


#define STR_HELPER(x) #x
#define STR(x) STR_HELPER(x)


#pragma message "msg1 = " STR(MSG1)
#pragma message "msg2 = " STR(MSG2)

Zapouzdření enum

Dlouhé roky jsem používal klasický enum kde před podtržítkem, jsem si držel význam toho enumu a bránil se tak i duplicitě např. NONE je velmi časté.

typedef enum {
  QUALITY_NONE = 0,  
  QUALITY_BAD,
  QUALITY_GOOD,
  QUALITY_EXCELENT
} eQuality;

Ale nedávno jsem objevil nový, lepší způsob jak toto zapsat a sice..
struct QUALITY{ enum{NONE = 0, BAD, GOOD, EXCELENT};};
Použití je potom
QUALITY::NONE