Go Down

Topic: Global variable "not declared in this scope" (Read 6065 times) previous topic - next topic


I'm only used to programming things in PHP, so I understand there are differences.  I don't understand why, no matter where I declare this variable, I keep getting the same errors.

My entire program so far is as follows:


int greenPin = 11;
int redPin = 10;
int switchPin = 9;
int lightState;

void setup()
//int lightState;
int lightDisplay(lightState){
  switch (lightState)
    case 1:
    case 2:
    case 3:

void loop()

  if (digitalRead(switchPin) == HIGH)

All I want to do is be able to call the lightDisplay() function and tell it whether to light a green LED, a red LED, or nothing at all.  Seems like this would be easier than rewriting the digitalWrite() statements over and over.

Anyway, when clicking the Verify button, I get this:

sketch_apr01a:-1: error: 'lightState' was not declared in this scope
sketch_apr01a:12: error: redefinition of 'int lightDisplay'
sketch_apr01a:-1: error: 'int lightDisplay' previously defined here

lightState is declared at the top of the code so I don't understand how this can be happening.  Am I using the wrong datatype or something?


Code: [Select]
int lightDisplay(lightState){

Does lightState have a type?
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.


You can get rid of it at the top of your code.  You just need to 'declare' it in your function definition

Code: [Select]

void lightDisplay(int lightState){

And make it a void function because it returns nothing.


Thank you.  I'm not used to having to declare variables that way, so no wonder I couldn't figure it out.  Declaring the variable inside the function worked great.


There is a reference section for this idea of scoping!

It is worth the time to read and understand.

Global variables should generally be avoided.

Local variables are better.

Except for the exceptions -- but that is the advanced class.
Just another Hacker

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131