user6161
user6161

Reputation: 289

C function is not returning the value

whats wrong with my code? im trying to return a value from function ignition_status, its not returning. I cant see any problem in my code.

#include<stdio.h>
#include<stdint.h>
const char * ignition_status();
const char *ign_st;
int main()
{
printf("%s", ignition_status(1));
return 0;
}
const char * ignition_status(int st)
{
    if(st==1)
        {
           const char *ign_st="ON";
         }
    else
        {
           const char *ign_st="OFF";
         }
   return ign_st;
}

Thanks...

Upvotes: 1

Views: 55

Answers (2)

user4580220
user4580220

Reputation:

Just remove const char * in front of ign_st in if/else statement:

#include<stdio.h>
#include<stdint.h>
const char * ignition_status();
const char *ign_st;

int main() {
  printf("%s", ignition_status(1));
  return 0;
}

const char * ignition_status(int st) {
  if(st==1) {
    ign_st="ON";
  } else {
    ign_st="OFF";
  }

  return ign_st;
}

Upvotes: 2

Lucio
Lucio

Reputation: 5408

The comments are pointing you to the right direction, here is a working sample:

#include <stdio.h>

const char * ignition_status(int st)
{
    const char *ign_st;

    if(st==1) {
       ign_st="ON";
    } else {
       ign_st="OFF";
    }

    return ign_st;
}

int main()
{
    printf("%s", ignition_status(1));

    return 0;
}

Upvotes: 3

Related Questions