在下面的函數聲明中,第二個參數是一個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 *',然後傳遞給函數。 –