簡體   English   中英

遵守C \\ C ++標准有哪些責任?

[英]What responsibilities are to comply C\C++ standard?

有點愚蠢的問題。 例如,我已經讀過,在C11中增加了對線程的支持。 然后,例如我的STM32F4的GCC編譯器說,它支持C11標准。 那么,現在是否意味着沒有操作系統我將實現線程支持??? 但它怎么可能?

另一個例子 - 即使沒有OS的內存管理,STM32的g ++也支持std :: vectors和IT WORKS。 這意味着一些內存管理器在內部編譯器? 或不?

有兩種C實現 - 托管實現,提供標准庫,以及獨立實現,只需要提供核心語言和最少數量的頭。 嵌入式系統的實現通常是獨立的。 在C11規范的第4節中有詳細描述。

更重要的是,即使在托管實現中也可以省略許多功能。 特別是,線程支持是可選的(省略線程支持的托管實現必須定義宏__STDC_NO_THREADS__ )。 這在規范的第6.10.8.3節中描述。

那么,現在是否意味着沒有操作系統我將實現線程支持???

這意味着指定了語言,以便可以正確地編寫多線程程序,並在訪問共享數據時具有良好定義的同步; 並且完整的托管實現應該提供線程庫。 這並不意味着所有實現都允許多個線程:這將取決於底層系統的支持。

這意味着一些內存管理器在內部編譯器?

是的,通常語言運行時包括堆管理器。 它將被分配一些內存(或者從OS獲得,或者以一些其他依賴於系統的方式分配,可能只是在程序啟動時作為靜態塊),然后它分成較小的塊以支持程序內的動態分配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM