我在某个地方看到Arduino使用“标准”的C语言,在另一个地方则说它使用“标准”的C++,究竟是哪一种呢?
Arduino的草图是用C++编写的。
这里是你会遇到的典型结构:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
...
lcd.begin(16, 2);
lcd.print("Hello, World!");
那是C++,不是C。
malloc
函数的返回值不应该进行类型转换(参考:https://dev59.com/dHRB5IYBdhLWcg3wgHWr),但在 C++ 中则是必须的。现在,允许 C++ 与 C 代码进行链接和交互非常好,但为此你大多需要避免一些保留字,并在头文件中添加一个条件性(预处理器)extern "C"
。这确实有很大的差别。此外,还有一堆美妙的 C99 和 C11 特性,而 C++ 并不支持;为什么好的 C 代码要人为地限制自己只使用 C++ 的一个子集呢? - user395760