Всем привет. Начнем наш первый урок. Начинать изучение программирования с вывода информации «Привет, Мир» стала уже традицией. И мы так же поступим.
Создадим файл main1.c где вам удобно, например на рабочем столе. Откройте файл в текстовом редакторе. Наберите следующий код (советую вам не копировать, а написать вручную, чтобы лучше запомнить):
/*Наша первая программа на Си*/ #include int main ()
Теперь давайте рассмотрим каждую строку по отдельности. Здесь в первой строке комментарий помещенная в скобки /* */. При компиляции компилятор не обращает внимания на комментарии. Комментарии используется что бы не забыть что за программа или какую функцию выполняет. Так же комментарии используются в случаи если над проектом работают и другие лица кроме вас.
Компилятор — это программа которая переводит исходный код понятный человеку, в код понятный машине (компьютеру). Процесс перевода называется компиляция.
А вторая строка это препроцессорная директива которая подключает библиотеку в которой содержится функции puts, return, printf и другие. Во время компиляции, компилятор вставит туда текст из библиотеки .
Уроки C++ / Первая программа на С++
int main () — это тело программы с которой начинаются все программы на Си. В программе не может быть более одной функции main.
puts и return — это операторы которые описаны в . Puts используется для вывода информации в поток stdout (stdout — по умолчанию настроен на экран, то есть информация выводится на монитор). А return (переводится как определять) завершает исполнение программы и возвращает нулевое значение в среде исполнения. Использование оператора return обязательна, иначе программа «зависнет» в памяти компьютера.
Ну давайте скомпилируем же нашу программу. Для этого сохраните внесенные изменения. Откройте терминал (Ctrl+Alt+T). Выполните следующую команду:
gcc -o [имя выходного файла] ‘[путь к компилируем файлу]’
./[имя выходного файла]
gcc -o prog ‘/home/ubuntuforlife/Рабочий стол/main.c’
./prog
Увидим следующий результат:
Hello, World!
Поздравляю, вы написали и скомпилировали первую программу.
Попробуйте заменить оператор puts на printf.
/*Меняем puts на printf*/ #include int main ()
Сохраните и скомпилируйте. Результат будет тем же. Но эти два оператора отличаются, и чем же рассмотрим в дальнейшем.
Теперь проведем небольшой эксперимент. Удалим из исходника (это файл с кодом программы, в нашем случаи main.c) препроцессорную директиву #include и скомпилируем любую из наших двух программ. В первом случаи результат не изменится, а во втором вылетит ошибка:
Так зачем нам нужен заголовочный файл ? В этом файле приведены описания и определения для правильного использования тех функций стандартной библиотеки, которые нужны для ввода и вывода. Но ведь программа компилируется и работает так, как нужно. Для того чтобы доказать, что нужно подключать библиотеку рассмотрим следующие два примера. С подключенной библиотекой и без:
int main ()
И второй вариант:
Как выучить C#? Самый аху#### способ!
#include int main ()
В первом случаи все пройдет без ошибок, но на экран будет выведен текст только из первых кавычек. Вторых кавычек быть не должно, это ошибка. Но компилятор нам этого не «сказал».
А во втором случаи компилятор прервал процесс из-за ошибки в исходном коде:
Так что не забывайте подключать библиотеку. А что касается оператора printf то без библиотеки его никак не получится скомпилировать.
Источник: linux24.ru
Часть 1. Основы создания программ в Си Лекция.1.Язык Си
Язык программирования Си создан в 1972 г. сотрудником фирмы Bell Laboratories Деннисом Ритчи (Dennis M. Ritchie) при разработке операционной системы UNIX. Язык проектировался как инструмент для системного программирования с ориентацией на разработку хорошо структурированных программ. Удачное сочетание лаконичности конструкций и богатства выразительных возможностей позволило языку Си быстро распространиться и стать наиболее популярным языком прикладного и системного программирования. Компиляторы языка Си работают почти на всех типах современных ЭВМ в операционных системах UNIX, MS-DOS, Mac OS, OS/2, Windows, Windows NT, Solaris и др.
С++ фактически по ряду аспектов является улучшенным Си. С++ предоставляет ряд совершенно новых возможностей, таких как объектно-ориентированное программирование, шаблоны, расширенная работа с пользовательскими типами и прочие.
Технология разработки программ
Разработка программ на языке C++ ведется с помощью специальных комплексов программ, которые называются системами программирования и позволяют создавать программы на определенной реализации языка. Системы программирования даже одного производителя имеют различные версии, которые отражают развитие технологии программирования и эволюцию среды выполнения программ. Это стимулирует стремление максимально использовать стандартные средства языка для того, чтобы снизить затраты на модификацию программ при изменении среды выполнения или при переходе на другую версию языка.
Процесс создания программ включает четыре этапа:
1. Написание и редактирование исходного текста программы с сохранением ее в виде исходного файла или модуля.
2. Компиляция программы и получение ее на определенном промежуточном языке с сохранением виде объектного файла или модуля.
3. Построение исполнимого файла или модуля путем объединения (компоновки) полученного объектного модуля программы с другими объектными модулями стандартных и специальных библиотек.
4. Отладка программы, которую можно проводить с помощью специального средства (отладчика), облегчающего обнаружение ошибок.
Соответственно, основными компонентами современных систем программирования являются:
• интегрированная среда программирования;
• редактор связей (компоновщик или линковщик);
• библиотеки заголовочных файлов;
• стандартные и специальные библиотеки;
• библиотеки примеров программ;
Интегрированная среда программирования представляет собой программу, имеющую встроенный редактор текстов, подсистему работы с файлами, систему справочной помощи (Help-систему), встроенный отладчик, подсистему управления компиляцией и редактирования связей. Схема получения исполнимого модуля программы в интегрированной среде показана на рисунке (Рис. 1)
Рис. 1 Схема получения исполняемого модуля
Исходный модуль (ИМ) программы подготавливается с помощью встроенного или внешнего текстового редактора и размещается в файле с расширением *.срр. После этого ИМ обрабатывается препроцессором и, в случае необходимости, к исходному тексту программы присоединяются подключаемые файлы (ПФ).
В дальнейшем модернизированный исходный модуль (ИМ*) обрабатывается компилятором. Выявленные синтаксические ошибки устраняются, и безошибочно откомпилированный объектный модуль (ОМ) помещается в файл с расширением obj. Затем ОМ обрабатывается компоновщиком, который дополняет программу нужными библиотечными функциями из библиотечных файлов (БФ). Полученный модуль называется исполнимым модулем (ИсМ) и помещается в файл с расширением ехе, который в дальнейшем исполняется.
Источник: studfile.net
Введение в язык программирования С (Си) для микроконтроллеров
В этой статье будут рассмотрены основные сведение о языке С, структура программы на языке С, дано понятие о функциях, операторах и комментариях данного языка программирования.
История создания языка C (Си)
Язык программирования C (Си) появился «стихийно» – ни одна компания не заказывала создания подобного языка. Его первая версия появилась на свет в 1972 г. в фирме Bell Laboratories, написал ее теперь уже всемирно известный программист Деннис Ритчи (Dennis MacAlistair Ritchie).
Ритчи рассчитывал, что созданный им язык программирования будет востребован в операционной системе UNIX, которая тогда была еще новинкой. Конечно, создавать новый язык Ритчи помогали и другие его коллеги программисты, но именно он внес наибольший вклад в становление этого языка. К новому языку первоначально не выдвигалось никаких требований, перед ним не ставилось никаких задач, фактически он возник как результат дружеского соревнования между небольшим кругом программистов.
Название C (Си) появилось так же стихийно, как и сам язык. Фактически, он стал преемником ранее созданного языка В (Би), разработанного автором операционной системы UNIX Кеном Томпсоном. В свою очередь, язык Би во многом был похож на языке BCPL, разработанный в Кембриджском университете. А язык BCPL основывался на идеях «старого как мир» Алгола-60.
Первым неформальным стандартом языка Си стало издание в 1978 г. книги Брайана Кернигана и Денниса Ритчи с названием «The ‘C’ Programming Language». Первоначально книга была издана в США, но потом была переведена и многократно переиздавалась во многих других странах мира. В 1989 г. язык Си был стандартизован ANSI (American National Standards Institute – американский национальный институт стандартов) и ISO (International Standard Organization — международная организация по стандартизации).
Но время шло и у пользователей языка Си появилась потребность в реализации новых функций, не поддерживавшихся языком. Учитывая все это, Бьерн Страуструп в начале 80-х (работавший все в той же самой Bell Laboratories) принял решение о расширении возможностей языка Си, который первоначально назвали как «Си с классами». Но в дальнейшем за его модификацией языка закрепилось другое название — Си++. Это название сохранилось за ним вплоть до настоящего времени.
Общие сведения о языке C (Си)
В настоящие дни C (Си) является многофункциональным языком программирования высокого уровня, подобным таким языкам как Pascal или Python, но в отличие от них он имеет возможность работы с командами низкого уровня, подобно языку ассемблера. Программу на языке С можно скомпилировать в машинный код практически для любого известного микропроцессора. Не исключением стали и микроконтроллеры – сейчас по популярности использования (особенно для начинающих) язык Си обогнал в них доминировавший до этого язык ассемблера. Программирование на языке С поддерживает и самая популярная в настоящее время программная платформа Atmel Studio (. ) для микроконтроллеров семейства AVR.
Сейчас уже можно с уверенностью сказать, что язык С стал своеобразным фундаментом, на котором строится все современное программирование – чего стоят хотя бы «Visual C» и «C Sharp». Основанные на нем языки программирования сейчас занимают доминирующее положение в мире программирования. А все началось с удачной структуры языка, разработанной в 1972 г. Деннисом Ритчи.
Файлы программ на языке Си имеют расширение .C, а простейшая структура программы выглядит следующим образом.
int main (void) /* главная функция: начало программы */
оператор программы;
оператор программы;
.
оператор программы;
> /* закрывающая скобка в конце программы */
Комментарии являются необязательным элементом программы, но они крайне желательны для лучшего понимания ее сути.
Назначение основных элементов программы на языке C (Си)
Заголовки
В представленной на рисунке структуры программы на языке С строка #include является заголовком. Заголовки содержат специализированную информацию для компилятора об общих условиях выполнения программы и требуемых ей ресурсах. В рассмотренном случае мы указываем компилятору на то, чтобы при выполнении программы он учел информацию, содержащуюся в файле io.h – забегая вперед скажем что этот файл содержит инструкции для портов ввода/вывода микроконтроллера.
Символ # указывает на то, что представленная инструкция должна быть обработана препроцессором, который выполняет предварительную обработку текста программы перед началом компиляции и подключает внешние библиотеки.
Какие заголовки (управление портами ввода/вывода, функции задержки и т.д.) следует подключить определяется потребностями конкретной программы. Если вы забыли подключить необходимый заголовок, то программа не скомпилируется – компилятор выдаст сообщение об ошибке. К слову сказать, эти ошибки легко устраняются – ведь компилятор сам подсказывает какие заголовки следует подключить.
Функции
По сути программа на языке С представляет собой набор функций, каждая из которых может вызывать для выполнения любые другие функции. Функций в программе может быть много, но обязательной является только одна из них, называемая «main» («главная»). Выполнение программы на языке С начинается всегда с нее. Программист не может изменить название главной функции «main», но названия для всех других функций программы он может выбирать произвольно.
Функции в языке С легко узнать по их отличительному признаку – круглым скобкам после их имени. В общем случае в скобках содержится набор параметров, которые могут передаваться в функцию для ее работы, а также набор переменных, через которые функция может передавать результаты ее работы во внешнюю функцию (которая ее вызвала). Если скобки пустые, как например, в представленном примере с функцией main(), то это значит что у функции нет ни входных, ни выходных параметров.
Идущая следом за названием функции фигурная скобка отмечает начало последовательности операторов, образующих тело функции. Закрывающая фигурная скобка > отмечает конец этой последовательности операторов. На этой скобке выполнение функции завершается.
Фигурные скобки также используются для того, чтобы объединить несколько операторов программы в составной оператор или блок.
Операторы
Как правило, тело функции в языке Си представляет собой набор операторов, в конце каждого из которых стоит точка с запятой ;. Можно размещать каждый оператор на своей строке или несколько операторов на одной строке – компилятору это неважно, главное чтобы они разделялись точкой с запятой (этот символ свидетельствует о конце оператора). Но для восприятия человеком, конечно, удобнее чтобы каждый оператор располагался на отдельной строке. Допускается использование и пустых строк чтобы визуально отделить структурные элементы программы.
Операторы выполняются последовательно в том порядке, в котором они записаны. Но структура программы не обязательно должна быть линейной – при наличии циклов и условий возможны пропуски выполнения отдельных операторов (условия) или многократное выполнение одних и тех же операторов (циклы).
Комментарии
Комментарии — это примечания, помогающие понять смысл программы. В языке Си текст комментариев записывается между значками /* */ . То, что написано между этими значками, компилятору совершенно неважно – он все это игнорирует. Это важно только для человека, который анализирует текст программы.
Комментарии можно размещать как на одной строке с операторами, так и на разных (обычно ниже или выше строки с оператором). Комментарии могут занимать несколько строк и для них не обязательно наличие в конце точки с запятой.
Наличие комментариев считается хорошим стилем программирования поскольку позволяет лучше понимать смысл программы не только ее автору (особенно по прошествии некоторого времени, в течение которого он над ней не работал), но и другим людям, которые в дальнейшем будут работать с этой программой.
Внутри комментариев нельзя использовать символы, определяющие начало и конец комментариев. К примеру, неправильная запись внутри комментария:
/* комментарии к программе /* управления электродвигателем */ */
/* комментарии к программе управления */ электродвигателем */
Язык Си для микроконтроллеров AVR поддерживает и другой метод записи комментариев — строка, начинающаяся с символов //. К примеру
// Это комментарий в одну строку
В качестве итога можно отметить, что для написания хорошо читаемой программы целесообразно придерживаться следующих правил:
- размещайте один оператор на строке;
- применяйте пустые строки для «отделения» одной логической части программы от другой;
- используйте комментарии.
Источник: microkontroller.ru