2016-03-02 2 views
0

Хорошо. Поэтому у меня есть простой вопрос. Если я попрошу его не в том месте, пожалуйста, исправьте меня. Я хочу спросить, почему Visual Studio дает мне это:Файл заголовка C++ в Visual Studio

#include "stdafx.h" 


int main() 
{ 
    return 0; 
} 

каждый раз, когда я создаю новый проект? (Я знаю, что могу выбрать «Пустой проект» и добавить свой файл .cpp сам, но мне просто интересно, он говорит #include <stdio.h> и #include <tchar.h>. Итак, для чего это все?

И PS - почему нет в main декларации нет (int argc, char** argv) (на мой кодирования курс в колледже, я узнал, что там может быть _tmain(int argc, _TCHAR* argv), создавая что-то в VS)

+4

Это странность Visual Studio. Он поддерживает свои предварительно скомпилированные заголовки. Параметры 'main' являются необязательными - вы можете добавить их, если необходимо, или опустить их, если вы их не используете. '_tmain', поскольку точка входа в программу также является странностью Microsoft, а не частью стандартного C++. –

+1

вы можете удалить 'stdafx.h', после чего вам нужно отключить предварительно скомпилированные заголовки -> http://stackoverflow.com/questions/7261707/how-to-avoid-precompiled-headers –

ответ

2

Хорошо Так у меня простой вопрос?. Если я спрошу его не в том месте, пожалуйста, исправьте меня. Я хочу спросить, почему Visual Studio дает мне это: ...

Ну, это немного зависит от типа проекта, который вы выбрали из мастера. Похож на стандартный шаблон для проекта консоли .

#include "stdafx.h" 

предназначено для любого типа единицы перевода мастером. Он поддерживает precompiled header optimizaton mechanism.


почему нет в основной декларации не (int argc, char** argv)?

Поскольку шаблон содержит минимум для действительного определения подписи main().

2

При создании нового проекта Win32 Visual Studio автоматически добавляет предварительно скомпилированный заголовок «stdafx.h» в ваш проект, даже если вы сняли флажок «Пустое проект».

Если вы хотите отключить это, перейдите к своим свойствам конфигурации проекта -> C/C++ -> Предварительно скомпилированные заголовки и выберите «Не использовать предварительно скомпилированные заголовки».

Работа с предварительно скомпилированными заголовками см .: https://stackoverflow.com/a/4726838.

И P.S. Посмотрите на ->https://stackoverflow.com/a/4207223

2

Предварительно скомпилированный заголовок предназначен для ускорения времени компиляции путем компиляции содержимого ваших наиболее часто включенных заголовков только один раз, а затем повторного использования результатов компиляции. Вы можете изменить его имя, если хотите.

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