从变量地址(&变量)开始的字符串长度 - 嵌入式 C

Length of the string from address of variable(&variable) - Embedded C

如何从变量(&variable) 的地址中找到字符串的长度?下面是代码:

SimpleProfile_GetParameter(SIMPLEPROFILE_CHAR7, &newValue); // Hello123
const char echoPrompt[] = "Print From BLE characters:\r\n";
UART_write(uart, echoPrompt, sizeof(echoPrompt)); // Output : Print From BLE characters: | Size : 29
UART_write(uart, &newValue, sizeof(&newValue)); // Output : Hello | Size : 4

我在 Code Composer Studio (CCS) 中使用此代码。我需要在 UART 中打印字符串,我需要在字符串中指定字符数。

我需要打印 "Hello123" 而不是打印 "Hello"

&newValue 是一个指针,所以 sizeof(&newValue) returns 是指针的大小,而不是它指向的字符串。假设 newValue 是一个以 null 结尾的字符串,使用 strlen().

sizeof在编译时运行,无法获取动态构造的字符串的大小

你也应该用 echoPrompt 来做,因为 sizeof 包括尾随的空字节,你可能不需要写那个。

UART_write(uart, echoPrompt, strlen(echoPrompt));
UART_write(uart, &newValue, strlen(&newValue));