Как в VisualStudio писать на Си
Можно по отдельности использовать текстовый редактор и компилятор, в ручном режиме компилировать и запускать программу в терминале или консоли, но намного удобнее использовать IDE или разные среды разработки. Обычно они включают встроенный текстовый редактор, который связан с компилятором, позволяя скомпилировать и запустить программу по одному клику. Также пользователю предоставляется огромное количество других дополнительных возможностей.
В нашем примере в качестве среды разработки (для программирования под Виндовс) мы будем использовать полнофункциональную и бесплатному среду VisualStudio 2019 Community, которую нашли по ссылке https://www.visualstudio.com/ru/vs/.
После загрузки и запуска VisualStudio в нем нужно отметить пункт «Разработка классических приложений на C++»:
Теперь выберите все необходимые пункты и запустите установку, нажав ОК. По завершению установке создадим первый проект. Откройте VisualStudio. На первом экране выберем тип EmptyProject для языка C++:
На втором экране в поле для имени проекта. Назовем его HelloApp. Тут же можно указать его расположение. После этого нажимаем Create.
Если в VisualStudio уже открыт какой-то проект, то можно создать новый проект для C через меню File (Файл) ->New (Создать) ->Project… (Проект) и затем повторить те же действия.
После этого VS создаст пустой проект. Теперь добавим в него текстовый файл, в котором будем набирать код. Для этого в окне SolutionExplorer (Обозреватель решений) нажмем правой кнопкой мыши на узел SourceFiles и выберем в контекстом меню: Add ->NewItem…:
Теперь откроется окно для добавления нового элемента:
Теперь надо выбрать пункт C++ File(.cpp), а внизу окна добавим имя для файла Hello.c. Обычно, исходные файлы на Си имеют расширение .с. Оно значит, что этот файл содержит исходный код на языке С, и он будет обрабатываться соответствующим компилятором.
На этом этапе изменим опции проекта. Для этого перейдем к пункту меню Project ->Properties
Для начала в свойствах проекта установим, что это будет консольное приложение: Linker->System и затем для поля SubSystem установим значение Console(/SUBSYSTEM:CONSOLE), выбрав необходимый элемент в списке:
После установки данного значения нажмем на кнопку «Применить», чтобы использовались новые настройки конфигурации.
Еще в окне свойств проекта в левой части перейдем к секции С/С++ и далее к пункту Advanced:
В правой части окна для поля CompileAs укажем значение Compileas C Code (/TC). Тем самым мы говорим, чтобы исходный код по умолчанию компилировался именно как код С, а не С++. По завершению установки данной опции нажмем «Применить».
После добавления файла проект будет иметь такую структуру:
Рассмотрим эту структуру. Окно SolutionExplorer содержит в решение. В нашем примере оно называется HelloApp. Решение может содержать несколько проектов. У нас один проекты с таким же именем HelloApp. В проекте содержится ряд узлов:
- ExternalDependencies: отображает файлы, которые используются в файлах исходного кода, но не относятся к проекту
- HeaderFiles: используется для хранения заголовочных файлов с расширением .h
- ResourceFiles: используется для хранения файлов ресурсов, к примеру, изображений
- SourceFiles: хранит файлы с исходным кодом
На текущем этапе определим в файле Hello.c простейший код, который будет отвечать за вывод строки на консоль:
#include<stdio.h> // подключаем заголовочный файл stdio.h
int main(void) // определяем функцию main
{ // начало функции
printf(«Hello world! \n»); // выводим строку на консоль
return0; // выходим из функции
} // конец функции
Запустим программу. Для этого в VS выберем пункт меню Debug ->StartWithoutDebugging или нажмем на сочетание клавиш Ctrl+F5:
В результате VS передаст исходный код компилятору, который скомпилирует из кода исполняемый файл exe, а он, потом будет запущен на выполнение. И мы увидим на запущенной консоли наше сообщение:
Дальше в папке Debug в проекте вы увидите скомпилированный файл exe, который можно запускать независимо от VS:
В нашем примере файл HelloApp.exe как раз и представляет скомпилированный исполняемый файл. Помимо данного файла в этой же папке автоматически генерируются два вспомогательных:
- HelloApp.ilk: файл «incrementallinker», который применяется компоновщиком для ускорения компоновки
- HelloApp.pdb: файл, содержащий отладочную информацию