- •Введение.
- •Понятие формального алгоритма.
- •Абстрактная машина.
- •Диалоговые программы.
- •Структурное программирование.
- •Информация.
- •Программа на языке высокого уровня.
- •Интерпретатор – покомандно или построчно считывает программу на исходном языке, переводит на машинный язык и отправляет на выполнение.
- •Интерпретатор языка командной строки.
- •Критерии качества программы.
- •Императивные и декларативные языки.
- •Надежность по.
- •Жизненный цикл по.
- •Структурное программирование.
- •Язык программирования с.
- •Алфавит.
- •Константы.
- •Void – пусто. Используется для обозначения отсутствия возвращаемого значения функции.
- •Данные.
- •Int а[10][7];массив из 10 элементов типа массив, из элементов типа int
- •Структура.
- •Extern. Внутренняя переменная.
- •Динамическая структура данных. Синтаксическое и динамическое распределение памяти.
- •Формальные параметры.
- •Тело функции.
- •Вызов функции.
- •Фактические аргументы.
- •Использование файлов в языка программирования с.
- •Директивы препроцессора. Указания компилятора.
- •Именованные константы. Макроопределения.
- •Проектирование интерфейса.
- •Блок схемы.
- •Символы процесса.
Формальные параметры.
Переменные, которые принимают значения, передаваемые функции при вызове в соответствии с порядком следования их имен в списке параметров. Список параметров содержит в ( ) идентификаторы, разделенные запятыми с указанием типа. Список может быть пустым, в этом случае также ограничивается ( ). После последнего идентификатора в списке параметров может быть записана, … - означает, что число параметров функции переменно, но не меньше, чем следует идентификаторов до многоточия.
Для доступа к значениям параметров, имена которых не заданы в списке формальных параметров, рекомендуется использовать макроопределения:
va_arg; va_end; va_start;
Допускается список параметров только из многоточия. Это означает, что число параметров переменной может быть =0.
Формальные параметры могут иметь базовый тип, либо быть struct, union, указателем или массивом. Указание первой (единственной)размерности для массива не обязательно. Массив воспринимается как указатель на тип элементов массива.
char s[ ]; char S[10]; char*S т.е. для формальных параметров эти 3 определения эквивалентны.
Параметры могут иметь класс памяти auto или registr( по умолчанию auto) . Если параметр представлен, но не объявлен, то предполагается int.
Идентификаторы формальных параметров не могут совпадать с идентификаторами переменных внутри тела функции, но возможно локальное переобъявление формальных параметров внутри вложенных блоков функции.
В объявлении формальных параметров не может перечисляться никакой другой идентификатор, кроме перечисленных в списке параметров. если имеется переменное число параметров, то программист отвечает за определение числа при вызове и получение их из стека функции.
Тип каждого формального параметра должен соответствовать типу фактического аргумента и типу соответствующего аргумента в списке типов аргументов функции в предварительном объявлении со списком типов.
Компилятор преобразует по умолчанию, отдельно над типом каждого формального параметра и фактического аргумента. После преобразования все формальные параметры имеют тип размером не меньшим, чем int и ни один из формальных параметров не имеет тип float.если используется модификаторы near, far, huge компилятор также может неявно провести преобразование аргументов указателей. Метод преобразования зависит от размера указателей в выбранной модели памяти и от наличия или отсутствия списка типов. Тип каждого формального параметра после преобразования определяет как интерпретируются размещенные в стеке аргументы, несоответствие типов фактических аргументов типам формальных параметров может привести к неверной интерпретации. Например, если в качестве аргумента передается 16-битовый указатель, и соответствующий формальный параметр объявлен как 32-битный, то вместо 16 бит из стека будут проинтерпретированы 32 бита, что повлечет за собой изменение значения указателя и других параметров, которые следуют за этим. Ошибки такого рода можно исключить, используя объявление функции со списком типов аргументов. Если функции не имеют аргументов, то рекомендуется использовать ключевое слово point.