GCC C编译错误,无法忽略void值,因为它应该是

End*_*vde 9 c gcc

我在编译一些C代码时遇到了麻烦.当我编译时,我得到这个错误:

player.c: In function ‘login’:  
player.c:54:17: error: void value not ignored as it ought to be
Run Code Online (Sandbox Code Playgroud)

这是错误的代码:

static bool login(const char *username, const char *password) {
    sp_error err = sp_session_login(g_sess, username, password, remember_me);
    printf("Signing in...\n");
    if (SP_ERROR_OK != err) {
        printf("Could not signin\n");
        return 0;
    }
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以绕过这种错误吗?
谢谢

编辑: 所有sp_函数都来自libspotify

Mac*_*ade 8

它通常意味着你将void函数的返回赋值给某事,这当然是一个错误.

在你的情况下,我猜这个sp_session_login函数是空的,因此错误.


lda*_*v1s 8

错误线在哪里?

没有进一步的信息,我猜它在这里:

sp_error err = sp_session_login(g_sess, username, password, remember_me);
Run Code Online (Sandbox Code Playgroud)

我猜sp_session_login正在返回虚空.

尝试:

static bool login(const char *username, const char *password) {
    sp_session_login(g_sess, username, password, remember_me);
    printf("Signing in...\n");
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

  • 确认,`sp_session_login`是一个`void`函数:https://developer.spotify.com/docs/libspotify/11.1.60/group__session.html (2认同)