2017-01-16 65 views

回答

2

這不是一個錯誤,但警告。

比方說,你有這樣的代碼:

void Test(int a, int b) 
{ 
    printf ("a = %d\n", a); 
} 

你會得到一個警告說,該b不使用參數,這顯然是這裏的情況。

在你的情況KAA_PROFILE_SCHEMA_VERSION肯定是定義爲somethething小於1:

bool kaa_profile_manager_is_profile_set(kaa_profile_manager_t *self) 
{ 
#if KAA_PROFILE_SCHEMA_VERSION > 0 
    return self->profile_body.buffer != NULL && self->profile_body.size != 0; 
#else 
    return true; 
#endif 
} 

因此實際的編譯代碼是這樣(不使用self):

bool kaa_profile_manager_is_profile_set(kaa_profile_manager_t *self) 
{ 
    return true; 
} 

在你的情況可能可以安全地忽略這些警告。

+0

哦,抱歉沒有看到你已經發布了正確的答案。 – gmug

+0

@gmug沒問題,人們總是在同時寫回答時發生這種情況。 –

2

我覺得定義KAA_PROFILE_SCHEMA_VERSION未設置或設置爲一個值< = 0就是這樣#else#if KAA_PROFILE_SCHEMA_VERSION > 0未編譯行後的代碼,但是代碼不使用的函數聲明的參數的原因。定義KAA_PROFILE_SCHEMA_VERSION值> 0,然後錯誤應該消失。