Durante la lettura di alcuni documenti here, mi sono imbattuto in questo:OR bit per bit delle costanti
unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
Non ho idea di come funziona. Ho letto gli operatori bit a bit in C, ma non capisco come sia possibile inserire tre (o più!) Costanti all'interno di una int e dopo essere in grado di estrarle di nuovo dall'int? Scavando più in basso la documentazione, ho trovato anche questo, che è probabilmente legato:
typedef enum {
kCFCalendarUnitEra = (1 << 1),
kCFCalendarUnitYear = (1 << 2),
kCFCalendarUnitMonth = (1 << 3),
kCFCalendarUnitDay = (1 << 4),
kCFCalendarUnitHour = (1 << 5),
kCFCalendarUnitMinute = (1 << 6),
kCFCalendarUnitSecond = (1 << 7),
kCFCalendarUnitWeek = (1 << 8),
kCFCalendarUnitWeekday = (1 << 9),
kCFCalendarUnitWeekdayOrdinal = (1 << 10),
} CFCalendarUnit;
Come le dichiarazioni (1 << 3)
/variabili di lavoro? Mi dispiace se questo è banale, ma qualcuno potrebbe per favore illuminarmi spiegando o magari postando un link per una buona spiegazione?
Sembra l'obiettivo-c? Questo è etichettato male? – SoapBox
@SoapBox: l'esempio è effettivamente preso da Cocoa, ma è davvero diretto C. – ryyst
Quella seconda riga di codice non è C, non da un punto lungo. – SoapBox