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.

[参考译文] CODECOMPOSER:使用 uint16_t 的编译器错误标记函数声明

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1604688/codecomposer-compiler-error-flagging-function-declaration-using-uint16_t

部件号: CODECOMPOSER

我正在努力将现有的 IAR 设计移植到 CCSv20。 目标器件是 MSP430F5432

函数调用:

  void hal_ucBusyWait (uint16_t waitCycles)
 
生成错误消息:
 
  #760:变量“uint16_t"不“不是类型名称
 
但是、如果我将 uint32_t 交换为 uint16_t、就没有抱怨的。  我在这里误会了什么?  编译似乎无法识别 uint16_t、但这毫无意义。 当然、要实现这一目标并不一定有意义。  
 
提前感谢您提供任何见解或诊断建议。  
 
 
 
 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    类型名称 uint16_t 不是类似的内置类型名称 int 悬空 。  它来自标准头文件 stdint.h 。 因此、最可能的解决方案是 #include 。  

    类型名称也是如此 uint32_t 。  对于您的具体情况、我不知道它是在哪里定义的。  要进行调查、请 使用选项 -- gen_preprocessor_listing 。  在 MSP430 编译器手册中进行搜索。  输出是文件扩展名为的文件 .rl 。  搜索该文件 uint32_t 。  您可能会看到它在外部定义 stdint.h 。  虽然这不是严格非法的、但这是一种糟糕的编程做法。

    谢谢。此致、

    -乔治