我看到了這樣的一個示例代碼的一部分:用C中的大括號定義一個指針?
1 void func (uint8_t *buffer, uint16_t length)
2 {
3 uint8_t *pack = {0};
4
5 for(int i=0; i<length; i++)
6 {
7 pack[i] = buffer[i];
8 }
9
10 // send out the "pack" here
11 }
這是爲了填補在「緩衝區」,以「包」的數據,然後發送「包」出到串行功能連接。
第3行是做什麼的?這就像定義一個所有元素都爲0的結構,但它是一個指針!這個指針指向哪裏?在for循環下,爲什麼它可以改變一個數組(包[1]),爲什麼我們並不需要聲明的大小,如:
uint8_t pack_array[length], *pack;
*pack = pack_array;
編譯器GCC是。
[編輯]:for循環中存在拼寫錯誤。
這是什麼'for(int i = 0; i ++; i
herohuyongtao
從哪裏得到這個片段? – haccks
這段代碼在for循環中有明顯的語義錯誤,如果沒有,它會調用'length!= 0'的未定義行爲。 – Nabla