2011-10-27 6 views
5
struct 
{ 
    unsigned resizesCellWidths:1; 
    unsigned numColumns:6; 
    unsigned separatorStyle:3; 
    unsigned allowsSelection:1; 
    unsigned backgroundViewExtendsUp:1; 
    unsigned backgroundViewExtendsDown:1; 
    unsigned usesPagedHorizontalScrolling:1; 
    unsigned updating:1; 
    unsigned ignoreTouchSelect:1; 
    unsigned needsReload:1; 
    unsigned allCellsNeedLayout:1; 
    unsigned isRotating:1; 
    unsigned clipsContentWidthToBounds:1; 
    unsigned isAnimatingUpdates:1; 
    unsigned requiresSelection:1; 
    unsigned contentSizeFillsBounds:1; 
    unsigned delegateWillDisplayCell:1; 
    unsigned delegateWillSelectItem:1; 
    unsigned delegateWillSelectItemMultiTouch:1; 
    unsigned delegateWillDeselectItem:1; 
    unsigned delegateDidSelectItem:1; 
    unsigned delegateDidSelectItemMultiTouch:1; 
    unsigned delegateDidDeselectItem:1; 
    unsigned delegateGestureRecognizerActivated:1; 
    unsigned delegateAdjustGridCellFrame:1; 
    unsigned delegateDidEndUpdateAnimation:1; 
    unsigned dataSourceGridCellSize:1; 
    unsigned int isEditing:1; 
    unsigned __RESERVED__:1; 
} _flags; 
  1. Jaki jest cel tej struktury?
  2. Co oznacza notacja :1 na końcu każdej linii?
  3. Co oznacza modyfikator unsigned, gdy nie ma wyraźnego typu?

DziękiJaki jest cel struktury flagi w systemie iOS?

+1

"Niepodpisany" ma domniemanie, że jest "unsigned int", chyba że określono inaczej. –

Odpowiedz

5

te są bitfields. Ponieważ większość z nich to flagi, mają tylko 2 możliwe wartości, więc nie ma potrzeby przypisywania więcej niż 1 bit do każdego pola. (z kilkoma wyjątkami w tej strukturze)

może być samodzielny jako typ. To tylko unsigned int.