tail recursion

int main(int argc, _TCHAR* argv[])
{
return main(argc, argv);
}
What will happen? Will this cause different behavior between debug version and release version? (-O0(ou zero) vs -O3(ou three))

debug version, will crash because of stack overflow, release version, will run forever because tail recursion optimization (no need to push the return address to stack)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s