我在一次面试中遇到过这个问题。谁能请提供在嵌入式C语言中使用指针的优点和缺点?
这个面试问题是垃圾。嵌入式系统一直使用指针。
我想要讨论的要点是嵌入式系统有时具有相当低的内存量。在这些系统中,执行系统/应用程序级编程中使用的典型内存分配(malloc()
/free()
)例程是不常见的。这个面试问题让人摸不着头脑。带有"分配动态内存";(可能是故意的)。
在嵌入式系统中,通常程序使用的所有内存都是静态分配的。
当然有很多这也取决于。一个atiny只有1千字节左右的RAM,而像STM32这样的东西有很多倍。
编辑:螺旋桨可以有512k/1mb。请注意,这比20世纪80年代和90年代初的许多工作站的内存要大得多。
这个问题不是很清楚。当你需要指针的时候,你可以使用它们,但是它们是无法避免的。首先,让我们考虑这个简单的hello world:
#include <stdio.h>
int main(void)
{
puts("Hello world");
}
"Hello world"
是字符串字面值,其类型为char数组。无论何时将数组传递给函数,该数组都会衰变成指针。
你可以看到。即使是最简单的程序,基本上也不可能在没有指针的情况下编写C代码。
从技术上讲,我可以不使用指针编写程序,但实际上我不知道如何在没有指针的情况下进行输入或输出。