Flags

Ich saß vor kurzem an der Arbeit und habe eine Funktion gebastelt, die ziemlich viele Parameter benötigt.

Also habe ich mir mal ein paar Gedanken über Flags gemacht und folgendes ist dabei herausgekommen:

#define FLAG_SET(f,v,bl) (bl) ? (v |= f) : (v &= ~f);
#define FLAG_GET(f,v) ((f&v)>0) || (f==0)
 
enum eFlags {
    STANDARD, //schließt alle anderen Optionen aus!
    FIRST   = 1 << 0,
    SECOUND = 1 << 1,
    THIRD   = 1 << 2,
    FOURTH  = 1 << 3
};

Mich würde interessieren, ob es nicht noch schönere bzw. schnellere Methoden gibt, dieses Probleme zu lösen.
 

5 thoughts on “Flags

Leave a Reply