×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

C++的大侠, 结构里的:1是什么意思?

struct
{
unsigned m_flCompleteConstruct : 1 ;
unsigned m_flOpenedDBCursor : 1 ;
unsigned m_flOpenedDBCursorScroll : 1 ;
unsigned m_flNoStateChange : 1 ;
unsigned m_flInDBChangeLog : 1 ;
unsigned m_flSetAggregateAllowed : 1 ;
unsigned m_flSkipInsertUserSession : 1 ;
unsigned m_flHasSkippedInsertUserSession: 1 ;
unsigned m_flInitialEnumObj : 1 ;
unsigned m_flSkipIsValid : 1 ;
unsigned m_flParentFKasPK : 1 ;
unsigned m_flUseT2PhaseCommit : 1 ;
unsigned m_flInSaveDelete : 1 ;
unsigned m_flInFinalRelease : 1 ;

#ifdef _DEBUG
unsigned m_flDebugFlag : 1 ; // Used to verify proper IsValid & Enum calls
unsigned m_flOrphanCollectionObject : 1 ;
#endif
} ;
Report

Replies, comments and Discussions:

  • 工作学习 / 学科技术讨论 / C++的大侠, 结构里的:1是什么意思?
    struct
    {
    unsigned m_flCompleteConstruct : 1 ;
    unsigned m_flOpenedDBCursor : 1 ;
    unsigned m_flOpenedDBCursorScroll : 1 ;
    unsigned m_flNoStateChange : 1 ;
    unsigned m_flInDBChangeLog : 1 ;
    unsigned m_flSetAggregateAllowed : 1 ;
    unsigned m_flSkipInsertUserSession : 1 ;
    unsigned m_flHasSkippedInsertUserSession: 1 ;
    unsigned m_flInitialEnumObj : 1 ;
    unsigned m_flSkipIsValid : 1 ;
    unsigned m_flParentFKasPK : 1 ;
    unsigned m_flUseT2PhaseCommit : 1 ;
    unsigned m_flInSaveDelete : 1 ;
    unsigned m_flInFinalRelease : 1 ;

    #ifdef _DEBUG
    unsigned m_flDebugFlag : 1 ; // Used to verify proper IsValid & Enum calls
    unsigned m_flOrphanCollectionObject : 1 ;
    #endif
    } ;
    • http://en.wikipedia.org/wiki/Bit_field
    • unsigned m_flCompleteConstruct:1;是定义1位 多用于管理FLAG。可以节省RAM使用量。一般来说你的例子里编译器会分配16位空间给结构,m_flCompleteConstruct是最低位。
    • 不是大侠,这应该是指一个16bit的变量的一个bit。具体是哪个bit要看是big endian还是littlt endian。从低到高或从高到低。