簡體   English   中英

錯誤:變量“size_map”具有初始化程序但類型不完整

[英]error: variable 'size_map' has initializer but incomplete type

嘗試使用新的 esp-open-rtos (esp8266 sdk) 編譯此代碼但看到錯誤

app_main.c:446:10: error: variable 'size_map' has initializer but incomplete type enum flash_size_map size_map = system_get_flash_size_map();
uint32_t user_rf_cal_sector_set(void) {
enum flash_size_map size_map = system_get_flash_size_map();
uint32_t rf_cal_sec = 0;

switch (size_map) {
    case FLASH_SIZE_4M_MAP_256_256:
        rf_cal_sec = 128 - 5;
        break;

    case FLASH_SIZE_8M_MAP_512_512:
        rf_cal_sec = 256 - 5;
        break;

    case FLASH_SIZE_16M_MAP_512_512:
    case FLASH_SIZE_16M_MAP_1024_1024:
        rf_cal_sec = 512 - 5;
        break;

    case FLASH_SIZE_32M_MAP_512_512:
    case FLASH_SIZE_32M_MAP_1024_1024:
        rf_cal_sec = 1024 - 5;
        break;

    default:
        rf_cal_sec = 0;
        break;
}   

return rf_cal_sec;

}

嘗試使用 flash_size_map size_map = system_get_flash_size_map(); 但看到這個:

 src/app_main.c:446:5: error: unknown type name 'flash_size_map' flash_size_map size_map = system_get_flash_size_map(); ^

當未提供正確的包含文件時會發生此類錯誤。

請注意,僅具有 enum 前向聲明是不夠的 - 您必須正確定義類型。

請參閱godbolt.org 上的示例- 如果您取消注釋第 9 行,編譯將成功。

關於您的應用程序,您需要 #include < esp_system.h >

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM