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
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.
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.
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);
}
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;
}
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.