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.

[参考译文] 编译器/TMS320F2.8335万:6.0 ABS()函数问题

Guru**** 2536220 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/565937/compiler-tms320f28335-ccs6-0-abs-function-problem

部件号:TMS320F2.8335万

工具/软件:TI C/C++编译器

树,

  我在6.0 中使用TMS320F2.8335万和DEug,对ABS()函数有一些疑问  

 1.如果 我使用abs()来计算 在带符号int中的值 , 例如<-3.2768万,结果为ng

2.如果我使用labs()进行相同的计算, 结果是OK的

 

 因此,proble非常清晰,abs()函数仅计算签名的int, 如果calc lont int,则必须使用labs()

我的问题是  

  我 没有关于  ABS()或labs()的任何技术文档,在哪里可以找到?

  我知道abs()在 <stdlib.h>中,但我 不知道关于这个库的任何信息。

  这一问题在 我们的消费者使用时发生之前应该避免‘s,但不幸的是,它确实发生了,所以 我必须确保永远不会再发生

 如果您的手指指向正确 的方向,  我们将不胜感激

 谢谢 !

  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ABS和实验室都是标准C功能,在C标准ISO 9899中定义。 C99标准说(第7.20 .6.1 节"Abs,labs和llabs函数")"如果无法表示结果,则行为未定义。" INT_MIN的绝对值不能表示为int,因此会出现未定义的行为,从而产生垃圾。 程序员有责任考虑数学结果是否与ABS函数类型不匹配,并调用labs函数。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    考古学家,非常感谢