c++ - Calling func before main()
- "Karol Gottan" <gottan op.pl> Feb 01 2004
- Jan Knepper <jan smartsoft.us> Feb 01 2004
- "Karol Gottan" <gottan op.pl> Feb 01 2004
- Scott Michel <scottm cs.ucla.edu> Feb 02 2004
- "Karol Gottan" <gottan op.pl> Feb 02 2004
- Jan Knepper <jan smartsoft.us> Feb 01 2004
- "Karol Gottan" <gottan op.pl> Feb 01 2004
- "Steve Strand" <snstrand comcast.net> Feb 01 2004
- Scott Michel <scottm mordred.cs.ucla.edu> Feb 01 2004
- Jan Knepper <jan smartsoft.us> Feb 01 2004
Hi,
I am looking for a way how to call a desired
function before main() is called in C mode ?
Something like
#pragma startup foo
in other compilers.
--
Karol Gottan
Feb 01 2004
Very simple... ;-)
static int result_of_foo = foo ();
int main ( int, char **, char ** )
{
return ( 0 );
}
static int foo ()
{
// Do something before 'main' is being invoked.
return ( 0 );
}
HTH
Karol Gottan wrote:
Hi,
I am looking for a way how to call a desired
function before main() is called in C mode ?
Something like
#pragma startup foo
in other compilers.
--
Karol Gottan
--
ManiaC++
Jan Knepper
But as for me and my household, we shall use Mozilla... www.mozilla.org
Feb 01 2004
<jan smartsoft.us> wrote :Very simple... ;-)
Unfortunately I am getting this : ------------ static int result_of_foo = foo (); ^ test.c(3) : Error: constant initializer expected ------------ Thanks for jumping in. -- Karol
Feb 01 2004
Karol Gottan wrote:<jan smartsoft.us> wrote :Very simple... ;-)
Unfortunately I am getting this : ------------ static int result_of_foo = foo (); ^ test.c(3) : Error: constant initializer expected ------------
You're not compiling C++ code, are you? -scooter
Feb 02 2004
<scottm cs.ucla.edu> wrote : [...]You're not compiling C++ code, are you?
In my first attempt yes - I did not compile in C++ mode. But then I realised I did it wrong and added -cpp. -- Karol
Feb 02 2004
Jan Knepper wrote:Very simple... ;-)
static int foo ();static int result_of_foo = foo (); int main ( int, char **, char ** ) { return ( 0 ); } static int foo () { // Do something before 'main' is being invoked. return ( 0 ); } HTH Karol Gottan wrote:Hi, I am looking for a way how to call a desired function before main() is called in C mode ? Something like #pragma startup foo in other compilers. -- Karol Gottan
-- ManiaC++ Jan Knepper But as for me and my household, we shall use Mozilla... www.mozilla.org
Feb 01 2004
<jan smartsoft.us> wrote :Jan Knepper wrote:Very simple... ;-)
static int foo ();
Thanks ! Works perfectly ! -- Karol
Feb 01 2004
Another way is to define a class at global level that has a constructor.
The constructor will be called before main().
Example:
struct foo {
foo() {cout << "do stuff before main\n";}
~foo() {cout << "do stuff after main\n";}
} myfoo;
int main()
{
cout << "here we are in main\n";
}
Feb 01 2004
Before someone takes the initiative and starts elaborating on this example, this question is a comp.lang.c++ FAQ item, whihc also covers how to sequence object allocation and construction before main() is called. Steve Strand <snstrand comcast.net> wrote:Another way is to define a class at global level that has a constructor. The constructor will be called before main(). Example: struct foo { foo() {cout << "do stuff before main\n";} ~foo() {cout << "do stuff after main\n";} } myfoo; int main() { cout << "here we are in main\n"; }
Feb 01 2004
<g> I was thinking that the question would come from a C++ classes book or something like that. It is one of the standard questions employers will ask you during a technical job interview for a C/C++ coding job... Scott Michel wrote:Before someone takes the initiative and starts elaborating on this example, this question is a comp.lang.c++ FAQ item, whihc also covers how to sequence object allocation and construction before main() is called. Steve Strand <snstrand comcast.net> wrote:Another way is to define a class at global level that has a constructor. The constructor will be called before main(). Example: struct foo { foo() {cout << "do stuff before main\n";} ~foo() {cout << "do stuff after main\n";} } myfoo; int main() { cout << "here we are in main\n"; }
-- ManiaC++ Jan Knepper But as for me and my household, we shall use Mozilla... www.mozilla.org
Feb 01 2004









"Karol Gottan" <gottan op.pl> 