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:strncat 不能增加价值??

Guru**** 2538930 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/965701/msp430fr2355-strncat-not-adding-value

器件型号:MSP430FR2355

为什么我的 mssg 不会在其中添加传感器?

请参阅以下代码:

传感器为0x30、但出于某种原因、它不会将其添加到消息中。  永久性信息被添加到 mssg 中只是正常...缓冲区是32

#pragma DATA_SECTION (DEAL_Info、".info")
char permany_Info[5]={[0 ... 4]= 0xFF};
#pragma RETAIN (DEAL_Info)

char * mssg、sensor = 0xFF、Send[buffer_size]={[0... Buffer_size-1]= 0xFF};

mssg =发送;

strcpy (发送、"JA");
mssg = strncat (mssg、permany_Info、4);
mssg = strncat (mssg、sensor、1);//客户端的系统 ID
m = strlen (mssg);
CRC_RESULT = CRC (mssg、m);

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

    >  mssg = strncat(mssg, sensor, 1); //system ID from client

    传感器不是阵列。 尝试:

    > mssg = strncat(mssg, &sensor, 1); //system ID from client

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

    谢谢!

    解决了这个问题。。

    所以我发现,如果我用"0"替代传感器,它会起作用,但如果我使用"0",它不起作用....添加&(地址)是否会将字符串更改为字符串?

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

    "0"是数组(字符串)、但"0"是标量。 对(1-)字符变量取'&'并不会使其成为数组(字符串)、但它确实会创建'char *'、并且长度为1 strncat 永远不会超过第一个字节。

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

    很好的了解…