GCC C compile error, void value not ignored as it ought to be

前端 未结 5 1350
长情又很酷
长情又很酷 2020-12-20 15:40

I\'m having trouble compiling some C code. When I compile, I\'l get this error:

player.c: In function ‘login’:  
player.c:54:17: error: void value not igno         


        
相关标签:
5条回答
  • 2020-12-20 16:01

    I'm going to guess that sp_session_login is declared as returning void and not sp_error and there is some alternative way of determining whether it succeeded.

    0 讨论(0)
  • 2020-12-20 16:02

    It doesn't look like sp_session_login actually returns anything. In particular, it doesn't return an sp_error, so there's no way this could work. You can't really bypass it.

    0 讨论(0)
  • 2020-12-20 16:13

    You must declare void functions before use them. Try to put them before the main function or before their calls. There's one more action you can do: You can tell the compiler that you will use void functions.

    For exemplo, there are two ways to make the same thing:

    #include <stdio.h>
    
    void showMsg(msg){
        printf("%s", msg);
    }
    
    int main(){
        showMsg("Learn c is easy!!!");
        return 0;
    }
    

    ...and the other way:

    #include <stdio.h>
    
    void showMsg(msg); //Here, you told the compiller that you will use the void function showMsg.
    
    int main(){
        showMsg("Learn c is easy!!!");
        return 0;
    }
    
    void showMsg(msg){
        printf("%s", msg);
    }
    
    0 讨论(0)
  • 2020-12-20 16:14

    Where is the error line exactly?

    Without further information, I'm guessing it's here:

    sp_error err = sp_session_login(g_sess, username, password, remember_me);
    

    I guess sp_session_login is returning the void.

    Try:

    static bool login(const char *username, const char *password) {
        sp_session_login(g_sess, username, password, remember_me);
        printf("Signing in...\n");
        return 1;
    }
    
    0 讨论(0)
  • 2020-12-20 16:19

    It usually means you assign the return of a void function to something, which is of course an error.

    In your case, I guess the sp_session_login function is a void one, hence the error.

    0 讨论(0)
提交回复
热议问题