Анахронизмы

Язык С
Строк программы, исключая математическое обеспечение Является учебным введением в центральную часть языка “C” Hачинаем. Единственный способ освоить новый язык Оператор FOR Набор полезных программ Подсчет символов Подсчет слов Функции Аргументы - вызов по значению Область действия: внешние переменные Резюме Константы Описания Преобразование типов До 9 и буквы от а до F Операции и выражения присваивания Старшинство и порядок вычисления Операторы и блоки Переключатель Цикл DO - WHILE Оператор CONTINUE Основные сведения Функции, возвращающие нецелые значения Еще об аргументах функций Правила, определяющие область действия Статические переменные Блочная структура Рекурсия Указатели и адреса Указатели и массивы Адресная арифметика Указатели символов и функции Указатели - не целые До 12, а не от 0 до 11. Так как за экономию памяти у нас пока не награждают, такой способ проще, чем подгонка индек-сов Инициализация массивов указателей Указатели на функции Структуры Структуры и функции Указатели на структуры Мы продемонстрируем, как правильно выполнить эту задачу Поля Определение типа Обращение к стандартной библиотеке Форматный вывод - функция PRINTF Форматный ввод - функция SCANF Форматное преобразование в памяти Обработка ошибок - STDERR и EXIT Обращение к системе Низкоуровневый ввод/вывод - операторы READ и WRITE Произвольный доступ - SEEK и LSEEK Пример - распечатка справочников Пример - распределитель памяти Константы Синтаксическая нотация Преобразования Первичные выражения Унарные операции Аддитивные операции Операция присваивания Спецификаторы типа Описание структур и объединений Инициализация TYPEDEF Оператор SWITCH Внешнее определение функции Область действия внешних идентификаторов Неявные описания Явные преобразования указателей Анахронизмы Операторы
439386
знаков
0
таблиц
0
изображений

25. Анахронизмы

Так как язык “C” является развивающимся языком, в старых

программах можно встретить некоторые устаревшие конструкции.

Хотя большинство версий компилятора поддерживает такие анах-

ронизмы, они в конце концов исчезнут, оставив за собой толь-

ко проблемы переносимости.

В ранних версиях “C” для проблем присваивания использо-

валась форма =ON, а не ON=, приводя к двусмысленностям, ти-

пичным примером которых является

X = -1

где X фактически уменьшается, поскольку операции = и - при-

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

как присваивание -1 к X.

Синтаксис инициализаторов изменился: раньше знак равенс-

тва, с которого начинается инициализатор, отсутствовал, так

что вместо

 

INT X = 1;

использовалось

INT X 1;

изменение было внесено из-за инициализации

INT F (1+2)

которая достаточно сильно напоминает определение функции,

чтобы смутить компиляторы.

26. Сводка синтаксических правил

Эта сводка синтаксиса языка “C” предназначена скорее для

облегчения понимания и не является точной формулировкой язы-

ка.

26.1. Выражения Основными выражениями являются следующие:

 

выражение:

первичное-выражение

·     выражение

& выражение

·     выражение

! Выражение

\^ выражение

++ L-значение

·     L-значение

L-значение ++

L-значение—


·     224 -

SIZEOF выражение

(имя типа) выражение

выражение бинарная-операция выражение

выражение ? Выражение : выражение

L-значение операция-присваивания выражение

выражение , выражение

первичное выражение:

идентификатор

константа

строка

(выражение)

первичное-выражение (список выражений

необ)

первичное-выражение [выражение]

L-значение . Идентификатор

первичное выражение -> идентификатор

L-значение:

идентификатор

первичное-выражение [выражение]

L-значение . Идентификатор

первичное-выражение -> идентификатор

·     выражение

(L-значение)

Операции первичных выражений

() [] . ->

 

имеют самый высокий приоритет и группируются слева

направо. Унарные операции

·     & - ! \^ ++ -- SIZEOF(Имя типа)

 

имеют более низкий приоритет, чем операции первичных выраже-

ний, но более высокий, чем приоритет любой бинарной опера-

ции. Эти операции группируются справа налево. Все бинарные

операции и условная операция (прим. Перевод.: условная опе-

рация группируется справа налево; это изменение внесено в

язык в 1978 г.) группируются слева направо и их приоритет

убывает в следующем порядке:

 

Бинарные операции:

* / %

+ -

>> <<

< > <= >=

== !=

&

\^

\!

&&

\!\!

?:


·     225 -

Все операции присваивания имеют одинаковый приоритет и груп-

пируются справа налево.

Операции присваивания:

= += -= *= ?= %= >>= <<= &= \^= \!=

 

Операция запятая имеет самый низкий приоритет и группируется

слева направо.

26.2. Описания Описание:

спецификаторы-описания список-инициализируемых-описателей

необ;

 

спецификаторы-описания:

спецификатор-типа спецификаторы-описания

необ

спецификатор-класса-памяти спецификаторы-описания

необ

спецификатор-класса-памяти:

AUTO

STATIC

EXTERN

REGISTER

TYPEDEF

спецификатор-типа:

CHAR

SHORT

INT

LONG

UNSIGNED

FLOAT

DOUBLE

спецификатор-структуры-или-объединения

определяющее-тип-имя

список-инициализируемых-описателей:

инициализируемый-описатель

инициализируемый-описатель,

список-инициализируемых-описателей

инициализируемый-описатель

описатель-инициализатор

необ

описатель:

идентификатор

(описатель)

·     описатель описатель () описатель [константное выражение

необ]

·      
226 -

спецификатор-структуры-или-объединения:

STRUCT список-описателей-структуры

STRUCT идентификатор \(список-описаний-структуры\)

STRUCT идентификатор

UNION \(список-описаний-структуры\)

UNION идентификатор \(список-описаний-структуры\)

UNION идентификатор

список-описаний-структцры:

описание-структуры

описание-структуры список-описаний-структуры

описание структуры:

спецификатор-типа список-описателей-структуры:

список-описателей-структуры

описатель-структуры

описатель-структуры,список-описателей-структуры

описатель-структуры:

описатель

описатель: константное выражение

:константное-выражение

инициализатор:

= выражение

= \(список-инициализатора\)

= \(список-инициализатора\)

список инициализатора:

выражение

список-инициализатора,список-инициализатора

\(список-инициализатора\)

имя-типа:

спецификатор-типа абстрактный-описатель

абстрактный-описатель:

пусто

\(абстрактный-описатель\)

·     абстрактный-описатель абстрактный-описатель () абстрактный-описатель [константное-выражение

необ]

определяющее-тип-имя:

идентификатор


Информация о работе «Язык С»
Раздел: Информатика, программирование
Количество знаков с пробелами: 439386
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
48443
0
0

... основаниям. При этом философская абстракция языка оказывается неразрывно связана с основными темами и движениями философии в целом. Более конкретно, на ранние стадии традиционно рассматриваемого в рамках АФ анализа обыденного языка глубокое влияние оказала философия Дж. Э. Мура, особенно его учение о здравом смысле, согласно которому такие понятия, как «человек», «мир», «я», «внешний мир», « ...

Скачать
43709
0
0

... и других странах СНГ, а также облегчение доступа к русской и мировой культуре и науке. Таким образом, судя по данным наших исследований, востребованность русского языка осталась в республике достаточно высокой. Многие представители современной молдавской молодежи продолжают, как их отцы и деды, тянуться к русской культуре, научным и техническим достижениям России. Русский язык остается языком ...

Скачать
39778
0
1

... рисуночное словесно-слоговое письмо). Памятники среднеэламского периода (14—12 вв. до н.э.) выполнены аккадской клинописью. Памятники новоэламского периода относятся к 8—6 вв. до н.э. Был официальным языком в персидском государстве Ахеменидов в 6—4 вв. предполагается, что он, подвергшись влиянию древнеперсидского, сохранился до раннего средневековья. 7. Бурушаски язык Язык бурушаски ( ...

Скачать
64931
0
0

... /диалект), скифский, согдийский, среднеперсидский, таджикский, таджриши (язык/диалект), талышский, татский, хорезмийский, хотаносакский, шугнано-рушанская группа языков, ягнобский, язгулямский и др. Они относятся к индоиранской ветви индоевропейских языков. Области распространения: Иран, Афганистан, Таджикистан, некоторые районы Ирака, Турции, Пакистана, Индии, Грузии, Российской Федерации. Общее ...

0 комментариев


Наверх