In a nutshell, startup code is a technique that how to call a function before main(). You can find this technique in page204-205 of<<Modern C++ Design>>.
A better explaination is this:
- define a variable in a global scope or in a anonymous namespace scope.
- initialize the variable with the value returned by function, which implict that function's return value should consistent with the variable type, usually we use bool.
- the function was called for the global variable's initializing before main().
An example may give you the idea:
#include
<
iostream
>
using namespace std;
bool Func()
{
cout << " in Func " << endl;
return true ;
}
namespace
{
const bool startup = Func();
}
void main()
{
cout << " in main " << endl;
}
using namespace std;
bool Func()
{
cout << " in Func " << endl;
return true ;
}
namespace
{
const bool startup = Func();
}
void main()
{
cout << " in main " << endl;
}
Run the example, you will see that Func() was called before main()
http://www.cppblog.com/bidepan2023/archive/2007/03/24/20529.html.