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.

[参考译文] MSP430FR2355:顽固的代码行?

Guru**** 2538930 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/907913/msp430fr2355-stubborn-line-of-code

器件型号:MSP430FR2355

是否有人可以告诉我为什么执行以下代码?

如果(永久性_Info[wR]= 0xFF)
Adv++;

但以下情况不会:

IF (永久性信息[wR]='255')
Adv++;

在代码的早期、我具有以下内容:

if (永久性信息[wR]!='255')

它工作正常。。。

谢谢

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

    "255"不是0xFF 的字节。 它是一个多字节字符字面量、具有实现定义的值。 一种可能是0x020505、但 CC 手册可能会说。 没有字符等于0x020505、所以'!='工作正常。

    我一直认为0xFF 只是正常的。 您还可以说'\377'(八进制)或'\xff'(十六进制)、但这会将任何阅读您的代码的人发送到 C 手册。

    [编辑:"多字节字符"具有特定的含义、因此我将其更改为"多字节"]

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

    我强烈建议您阅读 K&R2、这是原始 ANSI C 手册:Kernigham 和 Richie 编写的"C 编程语言"。 单引号运算符的目的是提供字符的 ASCII 值。 因此、您有 C idiom (c -'0')、它会 将字符 c 转换为所有具有0到9的字符集的整数值。