在下面的函数声明中,第二个参数是一个const指针指向const数据。c语法将常量指针的const指针传递给常量数据
ti_rc_t ti_uart_write_buffer(const ti_uart_t uart, const uint8_t *const data, uint32_t len);
以下是调用函数的示例代码。为什么在BANNER_STR之前有(uint8_t *)
。这是通常的语法将const指针传递给一个常量数据到一个函数?还有其他有效的语法吗?
#define BANNER_STR ("Hello, world!\n\n")
ti_uart_write_buffer(TI_UART_0, (uint8_t *)BANNER_STR, sizeof(BANNER_STR));
由于
了'const's存在由功能的承诺,它不会修改指针(不是有意义的)或指向的数据 - 它不是对调用者的限制(即调用者可以将'const'或非'constst'指针传递给'const'或非-const'数据)。 –
谢谢,但是当你调用这个函数时,BANNER_STR之前的'(uint8_t *)'是指什么? –
它将'BANNER_STR'从'const char *''强制转换为'uint8_t *',然后传递给函数。 –