这个未使用的参数错误是什么?

时间:2017-01-16 10:44:59

标签: c schema kaa

/home/pi/labsdk-RP/client/c/libs/kaa/src/extensions/profile/kaa_profile.c: In function ‘kaa_profile_manager_is_profile_set’:
/home/pi/labsdk-RP/client/c/libs/kaa/src/extensions/profile/kaa_profile.c:195:64: warning: unused parameter ‘self’ [-Wunused-parameter]
 bool kaa_profile_manager_is_profile_set(kaa_profile_manager_t *self)
                                                                ^
/home/pi/labsdk-RP/client/c/libs/kaa/src/extensions/profile/kaa_profile.c: In function ‘kaa_profile_manager_update_profile’:
/home/pi/labsdk-RP/client/c/libs/kaa/src/extensions/profile/kaa_profile.c:394:71: warning: unused parameter ‘self’ [-Wunused-parameter]
 kaa_error_t kaa_profile_manager_update_profile(kaa_profile_manager_t *self, kaa_profile_t *profile_body)
                                                                       ^
/home/pi/labsdk-RP/client/c/libs/kaa/src/extensions/profile/kaa_profile.c:394:92: warning: unused parameter ‘profile_body’ [-Wunused-parameter]
 kaa_error_t kaa_profile_manager_update_profile(kaa_profile_manager_t *self, kaa_profile_t *profile_body)

想就这些错误寻求帮助吗? 对于195:64

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
}

394:71

kaa_error_t kaa_profile_manager_update_profile(kaa_profile_manager_t *self, kaa_profile_t *profile_body)
{
#if KAA_PROFILE_SCHEMA_VERSION > 0
    KAA_RETURN_IF_NIL2(self, profile_body, KAA_ERR_BADPARAM);

    size_t serialized_profile_size = profile_body->get_size(profile_body);
    if (!serialized_profile_size) {
        KAA_LOG_ERROR(self->logger, KAA_ERR_BADDATA,
                      "Failed to update profile: serialize profile size is null. Maybe profile schema is empty");
        return KAA_ERR_BADDATA;
    }

对于394:

kaa_error_t kaa_profile_manager_update_profile(kaa_profile_manager_t *self, kaa_profile_t *profile_body)
{
#if KAA_PROFILE_SCHEMA_VERSION > 0
    KAA_RETURN_IF_NIL2(self, profile_body, KAA_ERR_BADPARAM);

    size_t serialized_profile_size = profile_body->get_size(profile_body);
    if (!serialized_profile_size) {
        KAA_LOG_ERROR(self->logger, KAA_ERR_BADDATA,
                      "Failed to update profile: serialize profile size is null. Maybe profile schema is empty");
        return KAA_ERR_BADDATA;
    }

想要了解更多有关这些错误的信息,因为这些错误是默认生成的,并且在演示应用程序中,它完全正常...

2 个答案:

答案 0 :(得分:2)

这不是错误,而是警告。

假设你有这段代码:

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

您将收到一条警告,指出未使用b参数,显然就是这种情况。

在你的情况下,KAA_PROFILE_SCHEMA_VERSION肯定被定义为小于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;
}

在您的情况下,您可以安全地忽略这些警告。

答案 1 :(得分:2)

我认为定义KAA_PROFILE_SCHEMA_VERSION未设置或设置为值< = 0.这就是为什么行#if KAA_PROFILE_SCHEMA_VERSION > 0之后的代码未编译而是{{1}之后的代码的原因它不使用函数声明的参数。使用值>定义#else 0然后错误就会消失。