• Структура программ на языке си. Основы языка Си: структура Си-программы, базовые типы и конструирование новых типов, операции и выражения

    Структура программы на языке С.

    Использование языка программирования С в решении экономических задач

    Программы и данные

    Достоинства языка С

    1) С – современный язык, его структура побуждает программиста использовать в своей работе методы: нисходящего проектирования, структурного программирования, модульную структуру программ.

    2) С – эффективный язык. Программы на С отличаются компактностью и быстротой выполнения.

    3) С – переносимый или мобильный язык.

    4) С – мощный и гибкий язык.

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

    6) С – удобный язык, он структурирован и вместе с тем не слишком ограничивает свободу программистам.

    7) С – язык компелирующего типа. Так как С стандартизированный, аппаратно-независимый, широко доступный язык, приложение написанное на С часто могут выполняться с минимальными модификациями или даже без них на самых различных компьютерных системах. Компьютер, несмотря на его скорость и мощность вычислений, является простым устройством, которое манипулирует с двоичными числами. Одни двоичные числа интерпретируются компьютером, как команды, другие, как данные. Чтобы заставить компьютер выполнить что-нибудь полезное, нужно составить программу.

    Программирование деятельность по составлению программы.

    Программа -это описание алгоритма решения задачи, заданной на языке ЭВМ.

    Команда предписание, определяющее очередной шаг.

    Пример команды : С=А+В, где А, В-операнды, +- операция.

    Операция -это то, что должна сделать ЭВМ согласно каждой команде.

    Операнды -участники операции, то над чем и с чем выполняется операция. Набор элементарных операций из способов их описаний образуют систему команд языка программирования.

    Пример №1:

    # include

    {void main(void) //заголовок головной функции программы

    сout << “Здравствуй, С!\ n”;

    1 строка : подключение вспомогательных библиотек, ориентированных на ввод и вывод данных разных типов в поток.

    2 строка: заголовок головной функции программы. Cout-оператор вывода информации << – помещение в класс данных, \n-переход к новой строке вывода.

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

    Использование С.

    1. Программы и данные.

    2. Схема выполнения программы на ЭВМ:

    Пример №1:

    # include < stdio.h>

    printf ("Я учусь в БГУИР\ n");

    1 строка: команда препроцессора include, включающая файл stdio.h, который описывает библиотечную функцию printf.

    2 строка: определение функции с именем main, не получающей никаких аргументов. Инструкция main заключается в фигурные скобки. Функция main обращается к библиотечной ф-ции printf для печати, заданной в последовательности литер. Наклонная черта (\ n) - литера новая строка, переход к новой строке.

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

    1) Составить программу на языке программирования.

    2) Транслировать ее в стандарте этого языка.

    3) Связать ее с необходимыми программами и функциями.

    4) Загрузить в оперативную память.

    5) Выполнить и получить результат.


    СХЕМА КОМПЕЛЯЦИИ

    Транслятор – это компьютерная программа по переводу программы, написанной на языке программирования, в форму понятную для компьютера. На выходе компилятора получается файл с расширением obj. Исполняемый файл или загрузочный модуль представляет собой файл, содержащий откомпилированную и готовую к выполнению программу. Borland C++ является средой для разработки программ, которые включают в себя как компилятор, так и некоторые другие инструменты.

    Структура программы на языке С.

    Любая программа на языке С состоит из одной или более ф-ций и элементов. Различным функциям можно давать любые имена. Ф-ции содержат инструкции (команды) предписывающие действия на определенном шаге выполнения, а переменная хранит значения, используемые в процессе этих действий. Такими действиями могут быть присвоения значения переменных, проверка некоторого условия. Функция с именем main. Выполнение любой программы начинается с ф-ции main.

    а) Общая структура программы на С без обращения к подпрограмме:

    б) Общая структура программы на С с обращением к подпр-ме:

    Аргументы являются одним из механизмов взаимодействия между функциями. Список аргументов в круглых скобках идет следом за именем функции. Фигурные скобки обрамляют начало и конец программы. Инструкции, из которых состоит тело программ из операторов и операндов. В С каждый оператор и каждая строка с обращением к функции заканчивается точкой с запятой. Исключение составляют команды препроцессора и имена функции, стоящие в начале программной единицы. Целью большинства программ является решение задачи путем различных преобразований исходных данных. Для этого необходимо.

    Последнее обновление: 18.05.2017

    Программа на языке Си состоит из набора директив препроцессора, определений функций и глобальных объектов. Директивы препроцессора управляют преобразованием текста до его компиляции. Глобальные объекты определяют используемые данные или состояние программы. А функции определяют поведение или действия программы. Простейшая программа на Си, которая была определена в прошлых темах:

    #include int main(void) { printf("Hello world! \n"); return 0; }

    Инструкции

    Простейшим строительным элементом программы на Си являются инструкции (statements). Каждая инструкция выполняет определенное действие. В конце инструкций в языке Си ставится точка с запятой (;). Данный знак указывает компилятору на завершение инструкции. Например:

    Printf("Hello world!");

    Вызов функции printf, которая выводит на консоль строку "Hello world!" является инструкцией и завершается точкой с запятой.

    Набор инструкций может представлять блок кода. Блок кода оформляется фигурными скобками, инструкции, составляющие тело этого блока, помещаются между открывающей и закрывающей фигурными скобками:

    { printf("Hello world!"); printf("Bye world!"); }

    В этом блоке кода две инструкции. Обе инструкции представляют вызов функции printf() и выводят определенную строку на консоль.

    Директивы препроцессора

    Для вывода данных на консоль в примере выше используется функция printf() , но чтобы использовать эту функцию, чтобы она вообще стала нам доступна в программе на Си, необходимо в начале файла с исходным кодом подключать заголовочный файл stdio.h с помощью директивы include .

    Директива include является директивой препроцессора. Кроме данной include есть еще ряд директив препроцессора, например, define.

    Каждая директива препроцессора размещается на одной строке. И в отличие от обычных инструкций языка Си, которые завершаются точкой с запятой ; , признаком завершения препроцессорной директивы является перевод на новую строку. Кроме того, директива должна начинаться со знака решетки #.

    Непосредственно директива "include" определяет, какие файлы надо включить в данном месте в текст программы. По умолчанию мы можем подключать стандартные файлы из каталога так называемых "заголовочных файлов", которые обычно поставляются вместе со стандартными библиотеками компилятора. И файл "stdio.h" как раз является одним из таких заголовочных файлов.

    Вообще сам термин "заголовочный файл" (header file) предполагает включение текста файла именно в начало или заголовок программы. Поэтому заголовочные файлы подключаются, как правило, в начале исходного кода. Кроме того, заголовочный файл должен быть подключен до вызова тех функций, которые он определяет. То есть, к примеру, файл stdio.h хранит определение функции printf, поэтому этот файл необходимо подключить до вызова функции printf.

    Но в целом директивы препроцессора необязательно должны быть размещены в начале файла.

    При компиляции исходного кода вначале срабатывает препроцессор, который сканирует исходный код на наличие строк, которые начинаются с символа #. Эти строки расцениваются препроцессором как директивы. И на месте этих директив происходит преобразование текста. Например, на месте директивы #include вставляется код из файла stdio.h.

    Функция main

    Стартовой точкой в любую программу на языке Си является функция main() . Именно с этой функции начинается выполнение приложения. Ее имя main фиксировано и для всех программ на Си всегда одинаково.

    Функция также является блоком кода, поэтому ее тело обрамляется фигурными скобками, между которыми идет набор инструкций.

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

    #include void main() { printf("Hello world!"); }

    #include int main() { printf("Hello world!"); return 0; }

    Использование этих определений не было бы ошибкой, и программа также вывела бы строку "Hello world" на консоль. И для большинства компиляторов это было бы нормально.

    Далее мы подробнее рассмотрим определение функций, но здесь надо учитывать следующий аспект. Определение функции в виде int main(void) зафиксировано в стандарте языка С11. Компиляторы прежде всего ориентируются на стандарт языка, его спецификацию. Поэтому если мы используем то определение, которое дано в стандарте языка, то больше шанс, что оно будет поддерживаться всеми компиляторами. Хотя опять же повторюсь, в использовании второго варианта или int main() большой ошибки не будет.

    Полностью последний стандарт C11 можно посмотреть по

    Любая программа, написанная на языке Си, состоит из одной или более "функций", являющихся основными модулями, из которых она собирается.

    Пример структуры простой программы на языке Си:

    Общий вид

    Пример

    директивы препроцессора

    # include

    # define N 10

    имя главной функции

    начало тела главной функции

    объявления переменных и массивов

    int x=1; char str[N];

    операторы программы

    puts(" Введите имя ");

    gets(str);

    printf("\n %s, Вы %d мой гость!",str,x);

    Конец тела главной функции

        1. Директивы препроцессора

    Составной частью компилятора является программа, называемая препроцессором . Препроцессор работает до трансляции программы с языка высокого уровня на машинный язык, выполняя её предварительное преобразование. Каждая директива препроцессора начинается с символа # (номер) и занимает всю строку. Директивы, которые не помещаются в одной строке, могут быть продолжены в следующей строке. Признаком продолжения строки является символ обратной косой черты (\) в продолжаемой строке.

    Наиболее часто используется директива включения в программу файла

    # include < name >

    где name – имя файла, включаемого в текст программы.

    Эту директиву называют директивой подстановки . Она предписывает компилятору поместить на её место файл name . Файл name называется заголовочным. Он содержит объявления данных и функций, используемых в программе. Например, включение в программу директивы

    # include < math . h >

    позволит использовать в программе стандартные математические функции, такие как sin x, cos x, ln x и т.д. Список стандартных математических функций будет приведён ниже.

    Директива

    # include < stdio . h >

    даёт возможность использования в программе стандартных функций ввода-вывода.

    Другой часто используемой директивой является директива определения

    #define S1 S2

    где S1, S2 – строки символов.

    Препроцессор отыскивает в тексте программы строку символов S 1 и заменяет её строкой S 2 . Например, включение в программу директивы

    # define P printf

    позволит набирать на клавиатуре букву P вместо слова printf .

    Эта замена не выполняется внутри текстовых строк (литералов), символьных констант и комментариев, т.е. действие директивы #define не распространяется на тексты, ограниченные кавычками, апострофами и находящимися внутри комментариев.

        1. Главная функция

    Каждая программа на языке Си должна содержать объявление функции main (), которая называется главной функцией. Как правило, эта функция не имеет параметров и не возвращает никакого значения. Для указания этого факта используется слово void . Таким образом, строка с именем главной функции обычно имеет вид:

    void main(void)

    void main()

        1. Переменные и массивы

    Массивом называется группа переменных одного типа с общим именем. Именем переменной или массива является идентификатор – последовательность, составленная из символов:

    a – z, A - Z , 0 – 9,_(подчеркивание),

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

    Элементы массива различаются своими номерами (индексами). Индекс может принимать только целые неотрицательные значения. Индекс записывается после имени массива в квадратных скобках. Индексов может быть несколько. В этом случае каждый индекс записывается в своих квадратных скобках.

    В языке Си могут использоваться переменные и массивы различных типов. Данные каждого типа занимают определённое количество байт памяти и могут принимать значения из определённого диапазона. Объём этой памяти и, соответственно, диапазон принимаемых значений в разных реализациях языка Си могут различаться. Количество байт памяти, занимаемой переменной определённого типа для конкретной реализация языка Си можно определить с помощью операции sizeof (тип). Например, определить объём памяти, отводимой под переменную целого типа, можно так:

    k = sizeof(int);

    printf (“ Под переменную типа int отводится %d байт памяти”, k );

    В данных методических указаниях рассматриваются три основных типа переменных и массивов, приведены типичные значения объёма занимаемой памяти и диапазона значений (табл. 1):

    Таблица 1

    Спецификатор типа (Ключевое слово)

    Значение

    Размер

    памяти (байт)

    Диапазон значений

    Число целого типа

    32768 . . . +32767

    2147483648 . . . +2147483647

    Действительный

    Число действительного типа

    3.4ּ10 -38 . . . 3.4ּ10 38

    (по модулю)

    Символьный

    128 . . . +127

    Несколько подробнее остановимся на переменной типа char . Как видно из табл. 1, переменная типа char занимает один байт памяти. В одном байте памяти можно записать либо целое число без знака из диапазона , либо целое число со знаком из диапазона [–128, 127]. Это число является кодом одного из 256 символов. Символ, соответствующий данному коду, определяется используемой кодовой таблицей. Таким образом, значение переменной типа char может рассматриваться либо как целое число, либо как символ, код которого равен этому числу.

    Рис.1 Структура программы на языке Си.

    Внутренняя структура программы

    Исполняемая программа на Си состоит из 4 частей: область команд, область статических данных, область динамических данных, область стека. см. Рис.2.

    1. Область команд содержит машинные команды; инструкции, которые должен выполнить микропроцессор.

    2. Область статических данных для хранения переменных, с которыми работает программа;

    3. Область динамических данных для размещения дополнительных данных, которые появляются в процессе работы программы (например, временных переменных).

    4. Стек используется для временного хранения данных и адресов возврата из функций.


    тело функции /*тело функции*/

    printf("Hello World!");

    1-я строка – директива, подключающая заголовочный файл стандартного ввода-вывода. Операторов в Си мало, но есть библиотека функций. Чтобы их использовать надо их подключить, что и делает директива – 1-я строка программы. Символ # указывает, что строка должна быть обработана препроцессором языка Си.



    2-я строка – имя главной функции main () , эта функция не возвращает никаких параметров (об этом буду говорить немного позже). Программа Си всегда имеет функцию main(). С нее начинается выполнение программы.

    3-я строка – начало тела функции. {} определяют тело функции (в Паскале - это begin и end)

    4-я строка – комментарий, он не компилируется, а только поясняет что делается.

    5-я строка – библиотечная функция – печатать на экране, выражение в скобках на этой строке – параметр функции, он всегда берётся в кавычки.

    ; - это признак оператора Си, это часть оператора, а не разделитель операторов, как в Паскале.

    Советы, как сделать программу читаемой:

    1) Выбирать осмысленные имена

    2) Использовать комментарии

    3) Использовать пустые строки для того, чтобы отделить одну часть функции от другой

    4) Помещать каждый оператор в другой строке.

    БАЗОВЫЕ ЭЛЕМЕНТЫ ЯЗЫКА СИ

    Рассмотрим обязательные элементы, с помощью которых должна оформляться программа на Си:

    1. Комментарии – используются для документирования программы. Любая программа должна содержать комментарии: какой алгоритм применяется, что делает программа…

    Ø 1 способ : /* Текст */ - в любом месте программы.

    Как только компилятор встречает /**/, он их пропускает. Компилятор игнорирует /* */, так как он не в состоянии интерпретировать язык, отличающийся от языка Си. То есть, если вы хотите исключить из компиляции какую-то строку, то заключите её в /**/.

    Ø 2 способ : если комментарий большой, то используем такой тип

    /* Строка 1 - для комментария любой длины

    строка 3*/

    Ø 3 способ : // - текст до конца строки.

    2. Идентификатор - это имя, которое присваивается какому-либо объекту (переменной). Используются строчные и прописные буквы, цифры и знак подчёркивания. Строчные и прописные буквы различаются. (В Бейсике не различаются). Если назвать переменную name, Name или NAME, то это будут разные переменные.

    Начинаются идентификаторы с буквы или знака подчеркивания. Например, _name. Но не рекомендуется начинать с _, так как этот знак используется для глобальных имен сомого языка Си.

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

    b – байт; ch – однобайтовый символ;

    w – слово; f – флаг;

    l – длинное слово; fn – функция;

    u – беззнаковое; p – указатель;

    с – счетчик; d – разность двух пре-х

    cz – строка; и т.д.

    3. Служебные слова – это слова, с которыми в языке жестко сопоставлены определённые смысловые значения и которые не могут быть использованы для других целей. Это имена операторов, библиотечных функций, команды препроцессора и так далее. Этим слова нельзя использовать для создания имен своих функций, переменных…

    ДАННЫЕ В ПРОГРАММЕ НА СИ

    Каждая программа оперирует с данными . Они присутствуют в программе в виде переменных и констант.

    Данные, которые могут изменяться или которым может присваиваться значения во время выполнения программы, называются переменными .

    Данные, которым устанавливаются определенные значения и они сохраняют свои значения на всем протяжении работы программы, называются константами.

    Константы

    Константы - это фиксированные значения. Значение, будучи установлено, больше не меняется. Константы бывают различных типов. Типы отличаются по принципу размещения в памяти ЭВМ, а для человека по виду записи. В Си существует 7 ключевых слов, используемых для указания на различные типы данных: int, long, short, unsigned, char, float, double.

    Типы констант :

    a) Целые и длинные целые . Записываются в десятичной, восьмеричной и шестнадцатеричной системе счисления. Они могут быть знаковые и беззнаковые.

    Десятичная система: целые константы занимают 16 бит памяти, и принимают диапазон значений: -32768 до +32767 (2 15) . Если константа беззнаковая, то диапазон удваивается: 0 до 65535 (за счет того, что 15-й разряд – знаковый используется под число). Для обозначения беззнакового числа используют суффикс u (unsigned), например 123u.

    Если число больше 40000, то компилятор автоматически преобразует его в отрицательное число, поэтому суффикс u обязателен:40000u. В примере 123u компилятору все равно – есть суффикс или его нет, так как это число входит в диапазон 32767.

    Длинное целое занимает 32 бита , диапазон значений

    ± 2147483648 (знаковое длинное – long). Если вы поставили суффикс l , то, несмотря на число, будет занято 32 бита. Например: -5326l

    0 – 4294967295 беззнаковое длинное - (unsigned long). Диапазон увеличивается за счет 31-го бита. Используются суффиксы ul , например, 32659ul.

    Восьмеричная система :

    Если число начинается с цифры 0, оно интерпретируется как восьмиричное число

    16 битов 0 ¸ 077777

    0100000 ¸ 0177777u

    32 бита 0200000 ¸ 01777777777l

    020000000000 ¸ 037777777777ul

    Шестнадцатеричная система :

    Если число начинается с символа 0х, то оно интерпретируется как шестнадцатиричное

    16 битов 0x0000 ¸ 0x7FFF

    0x8000 ¸ 0xEFFFu

    32 бита 0x10000 ¸ 0x7FFFFFFFl

    0x80000000 ¸ 0xFFFFFFFFul

    b) Вещественные константы . Это числа с плавающей точкой. Значение имеет дробную часть. По умолчанию все вещественные константы имеют тип двойной точности double . Занимают в памяти 8 байт (даже если 0,0). Диапазон значений ±1*10 ± 307 , можно записать и в научной форме, например: 0,5е+15 или

    1,2е-3=1,2*10 -8 =0,0012.

    Принудительно можно задать формат одинарной точности float . Число будет занимать 4 байта , используется суффикс f (5.7 f). Соответсвенно диапазон сужается ±1*10 ± 37

    А также расширенной точности long double – 10 байт . (3.14L)

    Знак + можно не писать. Разрешается опускать либо десятичную точку, либо экспоненциальную часть, но не одновременно (.2; 4е16). Можно не писать дробную либо целую часть, но не одновременно (100.; .8е-5)

    c) Символьные константы. Это набор символов, используемых в ЭВМ.

    Делятся на 2 группы: печатные и не печатные (управляющие коды). Символьная константа включает в себя только 1 символ, который необходимо заключить в апострофы и занимает 1 байт памяти.

    Любой символ имеет своё двойное представление в таблице ASCII. В программе символьные константы вводятся в одинарных кавычках, при компиляции в программу подставляется числовое значение символа из ASCII. Один символ занимает 1 байт.

    Символ "А" "a" " " "\n"

    Его код 65 97 32 10

    Как целый тип данных "A"=0101 8 , 01000001 2 , 41 16 , 65 10 . Коды запоминать не надо.

    Управляющие коды начинаются с символа \ и тоже заключаются в апострофы. Наиболее распространенные управляющие коды:

    \n – переход на новую строку

    \t – табуляция (сдвиг курсора на некоторое фиксированное значение)

    \b – шаг назад (сдвиг на одну позицию назад)

    \r – возврат каретки (возврат к началу строки)

    \f – подача бланка (протяжка бумаги на 1 страницу)

    \’ - апостроф

    \” - кавычки

    Последние три знака могут выступать символьными константами, а также применяться в функции printf() , поэтому применение их в качестве символов может привести к ошибке. Например, если мы хотим вывести строку «Символ \ называется слеш», то оператор должен выглядеть так:

    рrintf(«Символ \\ называется слеш»);

    a) Строковые константы - содержат последовательность из 1 и более символов, заключённых в " ". Расходуется по 1 байту на любой символ + 1байт на так называемый ноль-символ - признак конца строки. Ноль-символ – не цифра ноль, он означает, что количество символов в строке (N) должно быть на 1 байт больше (N+1), чтобы обозначать конец строки (компилятор его прибавляет сам автоматически). Например: «строка текста» занимает (13+1) байт;

    «Мир» -

    Прежде чем приступить к написанию программ, необходимо изучить структуру программ на языке программирования С++. Своими словами, структура программ это разметка рабочей области (области кода) с целью чёткого определения основных блоков программ и синтаксиса. Структура программ несколько отличается в зависимости от среды программирования. Мы ориентируемся на IDE Microsoft Visual Studio, и по этому примеры программ будут показаны именно для MVS. Если вы используете другую IDE, то вам не составит труда перенести код из MVS в другие среды разработки, и вы поймете со временем, как это сделать.

    Структура программ для Microsoft Visual Studio.

    // struct_program.cpp: определяет точку входа для консольного приложения. #include "stdafx.h" //здесь подключаем все необходимые препроцессорные директивы int main() { // начало главной функции с именем main //здесь будет находится ваш программный код }

    В строке 1 говорится о точке входа для консольного приложения, это значит, что данную программу можно запустить через командную строку Windows указав имя программы, к примеру, такое struct_program.cpp . Строка 1 является однострочным комментарием, так как начинается с символов // , подробнее о комментариях будет рассказано в следующей статье. В строке 2 подключен заголовочный файл "stdafx.h" . Данный файл похож на контейнер, так как в нем подключены основные препроцессорные директивы (те, что подключил компилятор, при создании консольного приложения), тут же могут быть подключены и вспомогательные (подключенные программистом).

    include — директива препроцессора, т. е. сообщение препроцессору. Строки, начинающиеся с символа # обрабатываются препроцессором до компиляции программы.

    Препроцессорные директивы также можно подключать и в строках, начиная после записи #include "stdafx.h" до начала главной функции. Причём такой способ подключения библиотек является основным, а использование "stdafx.h" — это дополнительная возможность подключения заголовочных файлов, которая есть только в MVS. С 4-й по 6-ю строки объявлена функция main . Строка 4 – это заголовок функции, который состоит из типа возвращаемых данных (в данном случае int), этой функцией, и имени функции, а также круглых скобок, в которых объявляются параметры функции.

    int — целочисленный тип данных

    Между фигурными скобочками размещается основной программный код, называемый еще телом функции. Это самая простая структура программы. Данная структура написана в Microsoft Visual Studio. Все выше сказанное остается справедливым и для других компиляторов, кроме строки 2. Контейнера "stdafx.h" нигде кроме MVS нет.

    Структура программы для C++ Builder.

    При создании консольного приложения мастер создания проектов создает автоматически следующий код:

    //препроцессорная директива, автоматически подключённая мастером создания проектов #include int main() { return 0; }

    Мы видим, что у функции тип данных — int . Это говорит о том что по завершении работы функция вернет какое-то целочисленное значение, в нашем случае 0. Целочисленное потому, что int – это тип данных для целых чисел, таких как 4, 5, 6, 456, 233 и т. д.

    Главное помнить, что если тип возвращаемых данных у функции main — это int или любой другой, кроме void , то следует писать строку типа этой: return <возвращаемое значение>;

    В строке 2 подключена библиотека vcl.h – её автоматически подключает мастер создания приложений, поэтому удалять её не следует, иначе проект не будет рабочим.

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

    Например:

    Int main(int argc, char* argv) { return 0; }

    Такой пример структуры генерируется мастером в MVS2010. Данный main немного отличается. Подробнее рассмотрим позже, но скажу, что данный main имеет такой вид, так как изначально рассчитан на поддержку юникода.

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

    Существуют разные версии main , но в этом нет ничего страшного, так как main была главной функцией, так она ей и остается, поэтому все выше сказанное остается актуальным.

    Пример структуры программы MVS с подключенными библиотеками.

    #include "stdafx.h" #include using namespace std; int main() { }

    Имя подключаемых библиотек пишется внутри знаков больше, меньше. Заголовочные файлы и имя подключаемых библиотек – синонимы.

    Синтаксис подключения заголовочных файлов:

    #include <имя заголовочного файла>

    Более старые заголовочные файлы подключаются так (этот стиль подключения библиотек унаследован у языка программирования C):

    #include <имя заголовочного файла.h>

    Различие состоит в том, что после имени ставится расширение.h .

    Язык программирования С++ является регистрозависимым. Например:
    Return 0; – не правильно, будет ошибка компиляции.
    return 0; – правильно!!!

    В данной статье рассмотрены структуры программ на С++ в таких средах как MVS и Borland. И как вы уже заметили, эти структуры почти не отличаются. Поэтому данная статья актуальна для любой IDE. Если вы ещё не определились с выбором IDE, прочитайте .