1. struct成員類型不可以是它自己,因為會遞歸定義,理論上導致結構體的大小不能被計算。但是成員可以定義為該結構體的指針或引用。
2. sizeof('0')在C語言里,存放的是字符的ASCALL碼(整型數據),結果為4,在C++中,‘0’為字符常量,類型為char,結果為1.
3. 數組初始化規則:如果制定了數組維數,那么初始化列表提供的元素個數不能超過維數值。如果維數大于列出的元素初始值個數,那只初始胡按前面的數組元素;剩下的其他元素,若是內置類型則初始化為0,若是類類型則調用該類的默認構造函數進行初始化。
4. 可用于線程之間的同步方式: 臨界區、互斥區、事件、信號量。
(1) 臨界區。當多個線程訪問一個獨占性共享資源時,可以使用臨界區對象。擁有臨界區的線程可以訪問被保護起來的資源或者代碼段,其他線程若想訪問,則被掛起,直到擁有臨界區的線程放棄臨界區為止。
(2) 互斥區。 互斥對象和臨界區對象非常相似,只是其允許在進程間使用,而臨界區只限制與同一進程的各個線程之間使用。
(3) 事件。事件機制,允許一個線程在處理完一個任務后,主動喚醒另外一個線程執行任務。
(4) 信號量。當需要一個計數器來限制可以使用某共享資源的線性數目時,可以使用信號量對象。CSemaphore類對象保存了對當前訪問某一個指定資源的線程的計數值,該計數值是當前還可以使用該資源的線程數目。如果這個計數達到了零,則所有對這個CSemaphore類對象所控制的資源的訪問嘗試都被放到一個隊列中等待,直到超時或者計數值不為零為止。
新聞熱點
疑難解答
圖片精選