Maybe it is because of struct Device? Also you need a return type to avoid "implicit declaration" in C90 mode and errors in C99 mode.
Here is a "cookbook" approach:
Header file transfermessage.h:
Code:
#ifndef TRANSFERMESSAGE_H
#define TRANSFERMESSAGE_H
#include "struct_device.h"
int TransferMessage(int Port, struct Device *example);
#endif
Implementation file transfermessage.c:
Code:
#include "transfermessage.h"
#include "struct_device.h"
int TransferMessage(int Port, struct Device *example)
{
// TODO
return 0;
}
Main program main.c:
Code:
#include <stdio.h>
#include "transfermessage.h"
#include "struct_device.h"
int main()
{
// struct_device.h should provide some function which gives
// back a valid initial struct Device object
struct Device d = device_init();
int retval = TransferMessage(1234, &d);
printf("TransferMessage returned code %d\n", retval);
return 0;
}