Durante la lectura de algunos documentos here, me encontré con esto:OR bit a bit de las constantes
unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
no tengo idea de cómo funciona esto. Leí sobre los operadores bit a bit en C, pero no entiendo cómo se pueden ajustar tres (¡o más!) Constantes dentro de una int y luego ser capaces de extraerlas de alguna manera del int. Excavación de más abajo en la documentación, también encontré esto, lo que probablemente está relacionado:
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;
¿Cómo funcionan las declaraciones/(1 << 3)
variables? Lo siento si esto es trivial, pero ¿podría alguien aclararme al explicar o quizás publicar un enlace a una buena explicación?
Eso parece objetivo-c? ¿Está mal etiquetado? – SoapBox
@SoapBox: El ejemplo de hecho se toma de Cocoa, pero realmente es directo C. – ryyst
Esa segunda línea de código no es C, no por mucho. – SoapBox