LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie
User Name
Password
Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question? If it is not in the man pages or the how-to's this is the place!

Notices


Reply
  Search this Thread
Old 01-03-2015, 07:54 PM   #1
AlexBB
Member
 
Registered: Mar 2014
Posts: 464

Rep: Reputation: Disabled
A C++ compile time error I do not understand.


I have this code:

Code:
void main()  {

     printf("\n  Please enter m, n, x and y: "); 
     scanf("%d %d %lf %lf", &M,&N,&X,&Y);     
     printf("  m = %d, n = %d, x = %f, y = %f\n\n", M, N, X, Y);
     CLPMN(M,N,X,Y,CPM,CPD);
     printf("   m   n    Re[Pmn(z)]     Im[Pmn(z)]    Re[Pmn'(z)]    Im[Pmn'(z)]\n");
     printf(" -------------------------------------------------------------------\n");  
     for (J=0; J<=M; J++) {
       printf("   %d   %d  %12.6f   %12.6f   %12.6f   %12.6f\n", 
	          J, N, CPM[J][N][0], CPM[J][N][1], CPD[J][N][0], CPD[J][N][1]);
     }
     printf("\n");
   }
The compilation with g++ gives me a single error:

Quote:
mclpmn.cpp:250:14: error: ‘::main’ must return ‘int’
void main() {
^
At Preview time I noticed that the caret ^ moved to the left border. In actual Terminal in Ubuntu it points to between two parentheses:

Quote:
main()
What kind of integer does the program expect and why?

Sorry for double posting. I don't know how to remove the other one I attached to one of my previous threads. Thanks, - A.
 
Old 01-03-2015, 08:48 PM   #2
astrogeek
Moderator
 
Registered: Oct 2008
Distribution: Slackware [64]-X.{0|1|2|37|-current} ::12<=X<=15, FreeBSD_12{.0|.1}
Posts: 6,263
Blog Entries: 24

Rep: Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194
In c++ main() cannot be void - illegal.

Code:
void main(){...} /* BAD! */

int main(){...} /* GOOD! */
The main() function must return an integer.

The reason is related to the kernel exit() call implicit in exiting main().

I think that some compilers will allow you write a void main(), but it is actually not allowed by the language.

Last edited by astrogeek; 01-03-2015 at 08:55 PM.
 
1 members found this post helpful.
Old 01-04-2015, 10:00 AM   #3
AlexBB
Member
 
Registered: Mar 2014
Posts: 464

Original Poster
Rep: Reputation: Disabled
Thank you, astrogeek. It is not my code. I got it on the web. But I've learned a lesson. -A.
 
Old 01-04-2015, 10:28 AM   #4
AlexBB
Member
 
Registered: Mar 2014
Posts: 464

Original Poster
Rep: Reputation: Disabled
Just tried it an it COMPILED!!! Such a simple solution! Thanks.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] INterpretation of Compile time error message in GFortran. AlexBB Linux - Newbie 2 01-03-2015 07:36 PM
[SOLVED] A compile time error in GFortran I don't understand AlexBB Linux - Newbie 16 12-13-2014 10:46 AM
how to understand user time, sys time, wait time, idle time of CPU guixingyi Linux - Server 1 08-24-2010 10:10 AM
rpm compile time error:make error ashmita04 Red Hat 1 07-09-2007 03:44 AM
Trying to Build/Compile for the first time - X error puppy Mandriva 16 09-25-2003 09:26 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie

All times are GMT -5. The time now is 08:25 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration