几年前我参加了一个嵌入式系统会议。我参加了一个课堂,讲师指出,C与VC++通用代码生成的汇编代码没有差别。(至少在ARM M3核心上)甚至大多数继承都是编译时间和运行时间。关于代码膨胀的语句通常是错误的,除非使用广泛的多态性(也从不使用异常)。然而,一个糟糕的C++开发人员可以通过创建/销毁开发人员不知道的临时对象来导致代码膨胀/性能问题。一个很差的C开发人员也会导致代码膨胀,所以你的里程会有所不同。一个人可以用C++编译器在C中编写,混合C/C++环境是一个美丽的地方。我最喜欢的设计模式之一是放置新的()访问器类,用于相同的硬件外围设备。只需实例化一个具有外围设备基地址的新访问器类。n个UART的一个类,或n个SPI类的类,…不使用RAM,因为它在内存映射的外围寄存器上操作,并且共享代码。遗憾的是,Microchip在低级库中不太接受C++,很容易开始学习,但是引擎盖下的细微之处比C更复杂。
几年前我参加了一个嵌入式系统会议。我参加了一个课堂,讲师指出,C与VC++通用代码生成的汇编代码没有差别。(至少在ARM M3核心上)甚至大多数继承都是编译时间和运行时间。关于代码膨胀的语句通常是错误的,除非使用广泛的多态性(也从不使用异常)。然而,一个糟糕的C++开发人员可以通过创建/销毁开发人员不知道的临时对象来导致代码膨胀/性能问题。一个很差的C开发人员也会导致代码膨胀,所以你的里程会有所不同。一个人可以用C++编译器在C中编写,混合C/C++环境是一个美丽的地方。我最喜欢的设计模式之一是放置新的()访问器类,用于相同的硬件外围设备。只需实例化一个具有外围设备基地址的新访问器类。n个UART的一个类,或n个SPI类的类,…不使用RAM,因为它在内存映射的外围寄存器上操作,并且共享代码。遗憾的是,Microchip在低级库中不太接受C++,很容易开始学习,但是引擎盖下的细微之处比C更复杂。
举报