Хорошо, вы хотите задать эзотерический вопрос, затем, пожалуйста, постройте полный.
Как вы провели тест?Что вы имеете в виду под аварией?Каким был ваш выход?Вы только что скомпилировали, или скомпилировали и скомпоновали, или скомпилировали и скомпоновали и отладили?Как настроен ваш компилятор?Куда вы идете с этим экспериментом?
фразы вроде: «что-то вроде» «зло» недостаточно информативны, чтобы быть полезными
Follow UP:
Инстинктивно я будуПредположим, что этот сбой является следствием переключателя оптимизации компилятора, с помощью которого вы разрешаете компилятору делать определенные предположения, которым вы не соответствуете.
мои предположения:
1- void main(void) (без;) является частью комментария, который вы делаете, но не является частью теста, который вы отправили.
2- Ваша программа неверна, но это намеренно, чтобы исследовать поведениесреда компилятора / компоновщика / выполнения.
Если это действительно так, вам нужно уменьшить сложность тестового примера.
Пожалуйста, упростите тестовый пример до минимума, необходимого для вызова сбоя.Я не могу сделать это для вас, у меня не установлены правильные версии программного обеспечения, во всяком случае, это ваш эксперимент.
будет ли это сбой?
struct foo { int i; double d; };
struct foo main( void)
{
int a=0;
return a;
}
или даже этот самыйминимальный пример?
void * main(void)
{
return 0;
}
из этого (сомневаюсь):
int main( double argc, char ** argv)
{
return 0;
}
Вы поняли идею.уменьшить крушение до его сути.Придумайте программу, которая не содержит ошибок, за исключением одной вещи, которая приведет к ее аварийному завершению.
Затем сообщите.