2014-10-24 2 views
2

В следующей программе я хочу знать, почему главный не подогнан подобно другие методы:Почему основной метод не наломать подобно другие методы

int main() 
{ 

} 

int main1() 
{ 

} 

Если я проверяю отказ от нм я вижу основной метод не является искаженным, а main1. Я попытался изменить запись программы с main на main1, используя запись #pragma, но это не повлияло.

Цените свою помощь по этому вопросу.

+0

обратная совместимость? Я предполагаю, что компоновщик ищет не искаженный «главный». –

+0

похоже на http://stackoverflow.com/questions/10715689/why-name-mangling-isnt-breaking-my-program – Thiyagarajan

+0

. Тогда почему изменение точки входа в программу с помощью записи #pragma не влияет на нее? –

ответ

0

Если я проверить отказ от нм я вижу метод main не искажается в то время как main1 есть.

main символ в нескольких отношениях специальный:

  • вы не можете взять его адрес
  • вы не можете назвать это сами
  • он не должен быть подогнаны потому что стандартная библиотека времени C будет называть ее непомеченным именем main.

Так что это не искалечено, потому что это требует стандарт C++. См. Также this answer.

Смежные вопросы