高级语言的低级功能

Vid*_*idi 2 c pascal programming-languages low-level high-level

我想知道一些高级语言的低级功能.在我的脑海中,我可以指出:-bitwise operations -bit fields -pointer arithmetic -inline assembly -interrupt functions

如果你指出一些不在我的清单中,我会赞成的.如果C或Pascal拥有它们会很好,但基本上任何高级语言都可以.谢谢.

Lun*_*din 5

C不支持内联汇编程序或中断,所有实现它们的C代码都使用非标准编译器扩展.但是,C++通过标准支持内联汇编程序.

以下是C的其他一些重要的硬件相关功能:

  • 函数指针对于C/C++来说是相当独特的,并且可以执行位于特定内存地址的代码,并且可以执行其他与硬件相关的任务.有关函数指针使用的更多详细信息,请参见此处:嵌入式系统中的函数指针.

  • 整数类型.C和Pascal都支持不同大小的int类型(字节,字,双字等),尽管标准没有规定它们的大小.出于同样的原因,sizeof运算符也很重要.

  • C还支持内存对齐,例如明确说明填充字节的行为规则.

  • volatile关键字也是硬件相关编程的一个重要特性,因为它允许变量实时更新,而不必担心编译器优化.

  • const关键字用于与硬件相关的编程,以确定数据的最终位置:NVM或RAM.

C缺乏的其他重要功能是多线程支持作为语言的一部分,以及内存屏障支持.一些C编译器通过volatile关键字实现内存屏障,但不保证它可以按任何标准工作.