LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   Trouble compiling main.c, conflicting types and previous declaration was here errors (https://www.linuxquestions.org/questions/linux-newbie-8/trouble-compiling-main-c-conflicting-types-and-previous-declaration-was-here-errors-886569/)

p_emily21 06-15-2011 01:53 PM

Trouble compiling main.c, conflicting types and previous declaration was here errors
 
Hello,
I'm trying to compile a main.c file that contains a while statement. Embedded in the while statement are functions that are being called. After the while statement, I have 2 more functions being called, one to find the average(getaverage), and one to print the results (printstuff).
I also used a header file (my.h) that contains all of the needed #define and #include, along with each of the void function() statements.

There isn't any problems with the while statement/ the functions in while, but when I try and compile main.c I get the following errors:
main.c error: conflicting types for 'getaverage'
my.h error: previous declaration of 'getaverage'
and then the same thing for 'printstuff'

I can't figure out why its not working and would appreciate help!
Thanks

MTK358 06-15-2011 03:06 PM

Could you post the prototypes and definitions (at least the first line that specifies the return type and parameters, the body isn't necessary) for the functions?

Remember to use [code] code goes here [/code] tags.

Also, I don't think you really need a header file for main.c, since nothing is going to include it anyway. I would put the prototypes in main.c.

p_emily21 06-15-2011 03:22 PM

Sure, I have:
in main.c:
Code:

getaverage(sum, count, &average);
      printstuff(count, sum, average, large, small, truth1, truth2, truth3);

in getaverage.c:
Code:

void getaverage(int sum, int count, double* average);
(this is also in the header file)
in printstuff.c:
Code:

void printstuff(int count, int sum, double average, int large, int small, bool truth1, bool truth2, bool truth3);
(also in header file)

thanks

MTK358 06-15-2011 03:55 PM

First, "&average" and "*average" are different.

Second, I don't understand what "(this is also in the header file) means. Could you either explain the organization of your code in more detail or just put all the code in a compressed archive and attach it to your post (if that's OK with you)?


All times are GMT -5. The time now is 12:19 PM.