如何从变量(& variable)地址找到字符串的长度?以下是代码:
SimpleProfile_GetParameter(SIMPLEPROFILE_CHAR7, &newValue); // Hello123
const char echoPrompt[] = "Print From BLE characters:rn";
UART_write(uart, echoPrompt, sizeof(echoPrompt)); // Output : Print From BLE characters: | Size : 29
UART_write(uart, &newValue, sizeof(&newValue)); // Output : Hello | Size : 4
我在代码作曲家Studio(CCS)中使用此代码。我需要在UART中打印字符串,我需要在其中指定字符串中的字符数。
我需要打印" Hello123",而不是打印其" Hello"
&newValue
是一个指针,因此sizeof(&newValue)
返回指针的大小,而不是指向的字符串。假设newValue
是一个null终止的字符串,请使用strlen()
。
sizeof
在编译时间运行,它无法获得动态构造的字符串的大小。
您也应该使用echoPrompt
来执行此操作,因为sizeof
包括尾随的null字节,您可能不需要写。
UART_write(uart, echoPrompt, strlen(echoPrompt));
UART_write(uart, &newValue, strlen(&newValue));