C语言和嵌入式C语言有什么区别?

55

有人能告诉我它们之间的区别吗?


你是在指C++和嵌入式C++吗? - mdec
哪些编译器实现了嵌入式C? - user2023370
@mdec 我认为他说的是C语言,但这里的大多数人也想了解cpp的区别,包括我。除了不知道嵌入式和非嵌入式之间的区别(除了基本上是SoC),比较C/嵌入式C和cpp/嵌入式cpp的差异也很有趣。 - Arthur Bowers
7个回答

40
在C语言标准中,独立实现不必提供托管实现必须提供的所有库函数。C语言标准不关心嵌入式,但嵌入式系统的供应商通常会提供带有任何数量的库的独立实现。
C是一种广泛使用的通用高级编程语言,主要用于系统编程。
嵌入式C是C编程语言的扩展,它提供支持为嵌入式设备开发高效程序。它不是C语言的一部分。
您还可以参考下面的文章:

ISO/IEC J TC1 SC22 WG14 N1169 的链接似乎已经失效。 - Amrith

15

嵌入式C语言通常是C语言的扩展,它们在很大程度上是相似的。然而,存在一些差异,例如:

  • C语言通常用于台式计算机,而嵌入式C用于基于微控制器的应用。

  • C语言可以使用桌面PC的资源,如内存、操作系统等。而嵌入式C必须使用有限的资源,例如嵌入式处理器上的RAM、ROM、I/O。

  • 嵌入式C包括比C更多的特性,例如定点类型、多个内存区域和I/O寄存器映射。

  • C编译器(ANSI C)通常生成依赖于操作系统的可执行文件。嵌入式C需要编译器创建文件,以便下载到需要运行的微控制器/微处理器。

请参阅C语言和嵌入式C语言的区别


8

基本上,没有一种专门的编程语言叫做“嵌入式语言”。 “嵌入式”是指承载计算机/微控制器的主机,而不是语言。 嵌入式系统可能具有较少的资源和接口供程序员使用,因此C语言将被不同地使用,但它仍然是相同的ISO定义语言。


5
嵌入式C是C语言的标准扩展,具有在嵌入式系统中常用但在其他领域不常见的特性,如定点算术。 - Graeme

5

1:C是一种计算机编程语言,而嵌入式C是对C编程语言的一组语言扩展。

2:C具有自由格式的程序源代码,在台式电脑中使用。而嵌入式C的格式会根据嵌入式处理器(微控制器/微处理器)的不同而有所差异。

3:在编程方面,C具有正常优化能力,而嵌入式C则可以进行高级优化。

4:C编程需要必要的操作系统支持,而嵌入式C则可能需要也可能不需要操作系统的支持。

5:C可以使用来自操作系统、内存等所有台式计算机的资源。而嵌入式C只能使用嵌入式处理器上的有限资源,例如RAM、ROM和I/O接口。


1

在嵌入式环境中,有时候没有MMU,内存和存储空间都比较少。在C编程层面上,交叉编译器会完成它们的工作。


1

c语言无法访问物理地址,嵌入式c可以访问物理地址 嵌入式c变量地址存储在堆栈中, 在嵌入式c中,变量应该在块的开头声明 嵌入式c使用输入输出端口,但在c语言中使用printf和scanf


1
在嵌入式C中,变量应该在块的开头声明。如果您使用支持C99、C11或C18的编译器,则没有必要这样做。只有C89/C90编译器不支持此功能,无论它们是在独立环境还是托管环境中。 - 12431234123412341234123

-6

C是一种仅用于系统编程的编程语言。 但嵌入式C被用于实现诸如实时应用程序之类的项目。


欢迎来到StackOverflow。与已有的答案相比,您的回答并没有增加价值。当您拥有足够的声望点数时,您将能够添加评论,但现在请不要将评论发布为答案。 - Henk van Boeijen
非常不正确。 - Arthur Bowers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接