在下面的代碼,我得到使用功能mraa_spi_write_buf()
以下警告。數組名腐爛在C指針 - 錯誤編譯
警告:賦值時將指針整數,未作鑄造 [-Wint變換]的read_data [0] = mraa_spi_write_buf(SPI,CMD,2);
我認爲數組名衰減到C指針?
這是功能
uint8_t * mraa_spi_write_buf (mraa_spi_context dev, uint8_t *data, int length).
#include "mraa.h"
#include <stdio.h>
#include <unistd.h>
int main()
{
uint8_t cmd[2] = {0xAA, 0xFF};
uint8_t read_data[2];
read_data[0] = mraa_spi_write_buf(spi, cmd, 2);
}
你正在分配一個數組嗎?仔細觀察!什麼是'read_data [0]'的類型? – datell
「我認爲數組名稱衰減到c中的指針?」 - 不總是。數組不是指針。目前還不清楚你在嘗試什麼;這是完全沒有道理的。 – Olaf
那麼,*幾乎*總是。例外情況列舉如下:「當它是'sizeof'運算符的操作數,'_Alignof'運算符或一元'&'運算符,或者是用於初始化數組的字符串文字」(C2011,6.3.2.1/ 3)。但是這與代碼中的問題無關。 –