遵守C C 标准的责任是什么

What responsibilities are to comply CC++ standard?

本文关键字:是什么 责任 标准 遵守      更新时间:2023-10-16

有点愚蠢的问题。例如,我已经读到,在C11中,添加了线程的支持。然后,例如,我的STM32F4的GCC编译器说,它支持C11标准。因此,现在意味着,如果没有操作系统,我将获得线程支持???但是怎么样?

STM32的另一个示例-G 支持STD ::向量,即使没有OS的内存管理也可以正常工作。这意味着某些内存管理器在编译器内部?或不?

有两种C实现 - hosted 实现,提供标准库,而 freestanding 实现,只需要提供核心语言和最小数量的标题。嵌入式系统的实现通常是独立的。这在C11规范的第4节中详细描述了

更重要的是,即使在托管实现中,也可以省略许多功能。特别是,线程支持是可选的(省略线程支持必须定义宏__STDC_NO_THREADS__的托管实现)。这在规格的第6.10.8.3节中进行了描述。

那么,现在意味着,如果没有操作系统,我将获得线程支持???

这意味着指定语言,以便在访问共享数据时可以正确编写多线程程序,并具有明确的同步;并且完整的托管实现应提供线程库。这并不意味着所有实现都将允许多个线程:这将取决于基础系统的支持。

这意味着某些内存管理器在编译器内部?

是的,通常语言运行时包括堆管理器。它将被分配一些内存(从OS获得,或以其他与系统相关的方式分配,也许是在程序启动时仅作为静态块),然后将其分成较小的块以支持程序中的动态分配。