error: #70: incomplete type is not allowed——已解決!

來源:互聯網
上載者:User

        今天在使用sizeof與數組時總是編譯出錯,百思不得其解,折騰了半天問題終於解決了!現在此做點筆記,警醒自己也方便他人!

        代碼結構如下:

在某個c檔案裡定義並初始化了light_value[]這個數組,在另一個c檔案要用到此數組,於是用extern聲明如下:

extern u8 light_value[];

然後錯誤碼如下:

for (i=0; i<2; ++i)//合并2位元
{
        n = i * 2;
        light_value[sizeof(light_value)/sizeof(light_value[0]) - 2 + i] 
        = light_value[n]*10 + light_value[n+1];     
}

問題當然就出在sizeof(light_value)上了,什麼原因呢?

原來是用extern 聲明 light_value[]時沒有指明數組的大小(即維數),

如此sizeof就不知道light_value所佔空間的大小了,所以編譯器就報錯了!

故:在extern u8 light_value[];中指明數組大小就行了,

如:extern u8 light_value[6];這樣就不會報錯了。

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.