Custom Library Error: Probably a silly syntax error

I am making a custom library for facilitating communication between two arduino boards across three using 3 DIOs.

This is Board.h

#ifndef Board
#define Board

#include "Arduino.h"

class Board {
    
    public:
    int dataPin;
    int inputConfirmationPin; 
    int outputConfirmationPin;


    Board(int dataPin_a, int inputConfirmationPin_a, int outputConfirmationPin_a, bool server);
    void sendByte(int values[]);    
    String getByte();
    void sendBit(int value);
    int getBit();
    void sendConfirmation(int value);
    int getConfirmation();
};

#endif

This is Board.cpp

#include "Board.h"
#include "Arduino.h"

Board::Board(int dataPin_a, int inputConfirmationPin_a, int outputConfirmationPin_a, bool server) {

  dataPin = dataPin_a;
  inputConfirmationPin = inputConfirmationPin_a;
  outputConfirmationPin = outputConfirmationPin_a;

  if(server) {
  pinMode(dataPin, OUTPUT);
  } else {
  pinMode(dataPin,INPUT);
  }
  pinMode(inputConfirmationPin, INPUT);
  pinMode(outputConfirmationPin, OUTPUT);
}

//Must contain 8 elements

void Board::sendByte(int values[]) {
    int confirmationValue;  
    bool firsthalf;

for (int i = 0; i < 8; i++) {
      confirmationValue = 1;
  firsthalf = true;  
  while(true){
  sendBit(values[i]);
  sendConfirmation(confirmationValue);
  
  if(getConfirmation() == 1 && firsthalf) {
        confirmationValue = 0;
    firsthalf = false;
        }
  if(getConfirmation() == 0 && !firsthalf) {
    break;
     }    
   }
 }
}


String Board::getByte() {
  String recievedByte = "";
    int confirmationValue;  
    bool firsthalf;
  for (int i = 0; i < 8; i++) {
      confirmationValue = 0;
  firsthalf = true;  
  while(true){

  sendConfirmation(confirmationValue);
  
  if(getConfirmation() == 1 && firsthalf) {
    recievedByte = recievedByte + getBit();
    firsthalf = false;
    confirmationValue = 1;
        }
  if(getConfirmation() == 0 && !firsthalf) {
    break;
     }    
   }
  }

  return recievedByte;

}

void Board::sendBit(int value) {
  if (value == 0) {
    digitalWrite(dataPin, LOW);
  } else if (value == 1) {
    digitalWrite(dataPin, HIGH);
  }
}

    int Board::getBit() {
      if (digitalRead(dataPin) == LOW) {
        return 0;
      } else if (digitalRead(dataPin) == HIGH) {
        return 1;
      }

    }
void Board::sendConfirmation(int value) {
  if (value == 0) {
    digitalWrite(outputConfirmationPin, LOW);
  } else if (value == 1) {
    digitalWrite(outputConfirmationPin, HIGH);
  }
}
int Board::getConfirmation() {
  if (digitalRead(inputConfirmationPin) == LOW) {
    return 0;
  } else if (digitalRead(inputConfirmationPin) == HIGH) {
    return 1;
  }

}

The error I am getting is

C : \Users\csapp2350\Documents\Arduino\libraries\Board / Board.h:19 : error : expected unqualified - id before 'int'
	C : \Users\csapp2350\Documents\Arduino\libraries\Board / Board.h:19 : error : expected `)' before 'int'
	C:\Users\csapp2350\Documents\Arduino\libraries\Board / Board.h:11 : error : an anonymous struct cannot have function members
	C : \Users\csapp2350\Documents\Arduino\libraries\Board / Board.h:26 : error : abstract declarator '<anonymous class>' used as declaration

It is probably a silly syntax mistake please let me know if additional information is required let me know. I am using Arduino version 1.0.6

void sendByte(int values[]);

You can't pass a array to a function...

#ifndef Board
#define Board    // <<< defines Board to be empty

#include "Arduino.h"

class Board {    // <<< expands to class {

Use

#ifndef Board_h
#define Board_h

instead.

You can pass an array to a function.

char cArr[] = "Array";
char* printIt(char arr[]) {
  Serial.println(arr);
  return arr;   // only to make it a function
}
void setup() {
  Serial.begin(115200);
  printIt(cArr);
}
void loop() {}

Yeay, okay. But it's good to know you're actually passing pointers. That was more my point. It's easy to make a fuckup if you expect to use sizeof or when you alter the array inside the function and expect it to stay the same outside...

Thank you so much oqibipo! changing it to Board_h worked.

But why use a array?

You can just shift out the byte...

Your code it quit devious...

@septillion: Shure, an array is passed as a pointer by value, the array is not copied.
Changing array elements is visible outside the function, changing the pointer is not.
The arr[] is just syntactical sugar for *arr.

har cArr[] = "Array";
void printIt(char arr[]) {
  Serial.println(++arr);   // shameless pointer usage
}
void setup() {
  Serial.begin(115200);
  printIt(cArr);
}
void loop() {}

Functions that get arrays as parameters most often have the number of elements or the length as an additional parameter.

Yeay, that's what I mean. If you don't know that and just pass the array as any other value you can end up with "strange" behavior... For a C string it's okay because of the NULL termination but yeay. And because the TS was passing a int array just to use the individual bit's did not give me the confidence the TS knows...