This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] C 与 C++和库

Guru**** 2344750 points
Other Parts Discussed in Thread: MSPM0G3507
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1263148/c-vs-c-and-libraries

主题中讨论的其他器件:MSPM0G3507

我正在使用 MSPM0G3507、但如果我将器件输入器件型号、则我不会在论坛中发布该器件、该论坛看起来好像是合适的地方。

是否对使用 C 与 C++有意见?  所有示例都是 C,我为什么使用 C++(类)?

经过一些搜索,似乎标准的库是可用的,但我不知道如何添加/使用它们。

例如,为了使用 std :: vector ,我必须做什么?  这样的东西是否可以使用或者它们是否会为较小的设备增加过多的膨胀?

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,WorkerBee,

    如果您的问题涉及 MSPM0 (G 或 L)、那么您就在合适的位置。  为 MSPM0系列提供的所有示例都是用 C 编写的、因为它在嵌入式产品中的使用比 C++更广泛。  这并不意味着您无法使用 C++。  事实上、TI ARM 编译器同时支持 C 和 C++。 这肯定是 C++的开销更高、并且它会消耗比 C 语言更多的内存。 MSPM0G350x 系列支持高达128K 的闪存。  如果您认为您可能需要更多的值、那么也许可以考虑使用 C。

    这是 用户指南的链接。  请查看一下、看看您是否能回答一些问题。  如果没有、请告诉我。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能详细说明一下吗? 我如何找到如何包含 ?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,WorkerBee,

    如果您在引用 ARM 中断向量、则可以在每个 MSPM0 driverlib 示例的 startup 文件中定义这些向量。  如果已下载 MSPM0 SDK、您将在中找到这些示例:

    C:\ti\mspm0_sdk_1_10_01_05\examples\nortos\lp_MSPM0G3507\driverlib

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Unknown 说:
    我该怎么做才能使用 std::vector?

    没什么特别的  这是编译器附带的库的另一个功能。  将会构建并运行您在典型 C++书籍、文章等中看到的示例。

    [quote userid="5580" url="~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1263148/c-vs-c-and-libraries 这样的事情是否可以使用或者它们是否会为较小的设备添加过多的 bloat?

    通过优化进行构建变得更加重要。  对于 MSPM0器件、通常最好通过使用 -Oz 。   有关更多详细信息、请参阅 tiarmclang 在线手册的优化选项部分。  您还需要 在编译和链接时使用链接时优化。  有关了解链接时优化的另一种方法、请观看 tiarmclang 视频系列中有关该优化的视频

    如果您确实需要矢量的所有特性、那么使用库实现可能优于构建自定义实现。  如果一个普通的阵列也能正常工作,那当然会更便宜。

    谢谢。此致、

    -乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否尝试过其中的任何一种方法? 出现特定问题可能会更好。 需要注意的一点是、TI 确实希望文件扩展为.cpp、而不是 c、以强制 C++编译器注意它们。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    www.geeksforgeeks.org/.../

    STL: C++标准模板库(STL)- GeeksforGeeks

    标准模板库(STL)是一组 C++模板类、用于提供常见的编程数据结构和函数、例如列表、堆栈、数组等。 它是容器类、算法和迭代器的库。 它是一个通用库,因此,它的组件是参数化的。  

    容器或容器类 存储对象和数据。 总共有七个标准的"第一类"容器类别和三个容器适配器类别,并且只有七个头文件提供对这些容器或容器适配器的访问。

    我所指的向量是此处提到的向量、它基本上是一个可重用数组。

    我习惯了访问 STL、这只是一个示例、如果您能告诉我如何使用它进行构建、我也能确定其他功能。

    我尝试添加#include 但这对我来说是行不通的,所以我想知道我缺少什么。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否使用.cpp 扩展名命名您的文件?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../3745166

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以关闭此窗口、我以前不知道它为什么不起作用。