ниже, игнорируются, за исключением тех случаев, когда они служатразделителями лексем. Необходим какой-то пустой промежуток дляразделения идентификаторов, ключевых слов и констант, которые впротивном случае сольются.
Если сделан разбор входного потока на лексемы вплоть до данного символа,то в качестве следующей лексемы берется самая длинная строка символов,которая еще может представлять собой лексему.
Комментарий открывается символами /* и заканчивается символами */ .Комментарии не вкладываются друг в друга.
восемь символов, хотя можно использовать и больше. На внешниеидентификаторы, которые используются различными ассемблерами изагрузчиками, накладыватся более жесткие ограничения:
| dec pdp-11 | 7 символов, 2 регистра |
| honeywell 6000 | 6 символов, 1 регистр |
| ibm 360/370 | 7 символов, 1 регистр |
| interdata 8/32 | 8 символов, 2 регистра |
Следующие идентификаторы зарезервированы для использования вкачестве ключевых слов и не могут использоваться иным образом:
Имеется несколько видов констант, которые перечислены ниже. В пункте 11.6 резюмируются характеристики аппаратныхсредств, которые влияют на размеры.
Последовательность цифр, которой предшествуют символы0х (нуль, х-маленькое) или 0X (нуль х-большое), рассматривается какшестнадцатиричное целое. Шестнадцатиричные цифры включают буквы от а(маленькое) или а (большое) до f (маленькое) или f (большое) созначениями от 10 до 15. Десятичная константа, величина которойпревышает наибольшее машинное целое со знаком, считается длинной;восмеричная или шестнадцатиричная константа, которое превышаетнаибольшее машинное целое без знака, также считается длинной.
Десятичная, восмеричная или шестнадцатиричная константа, за которойнепосредственно следует l (эль-маленькое) или L (эль-большое),является длинной константой. Как обсуждается ниже, на некоторыхмашинах целые и длинные значения могут рассматриваться какидентичные.
Символьная константа - это символ, заключенный в одиночные кавычки,как, например, 'х'. Значением символьной константы является численноезначение этого символа в машинном представлении набора символов.
Некоторые неграфические символы, одиночная кавычка ' и обратная косаячерта \ могут быть представлены в соответствии со следующей таблицейусловных последовательностей:
| новая строка | NL/LF/ | \n |
| горизонтальная табуляция | HT | \t |
| символ возврата на одну позицию | BS | \b |
| возврат каретки | CR | \r |
| переход на новую страницу | FF | \f |
| обратная косая черта | \ | \\ |
| одиночная кавычка | ' | \' |
| комбинация битов | ddd | \ddd |
является последовательность \0 (за нулем не следует цифра),которая определяет символ nul. Если следующий за обратной косой чертойсимвол не совпадает с одним из указанных, то обратная косая чертаигнорируется.
цифр. Либо целая, либо дробная часть (но не обе)может отсутствовать; либо десятичная точка, либо е (маленькая) иэкспонента (но не то и другое одновременно) может отсутствовать.Каждая плавающая константа считается имеющей двойную точность.
Строка - это последовательность символов, заключенная в двойные кавычки,как, наприимер,"...". Строка имеет тип "массив символов" и класс памятиstatic (см. Пункт 17.4 ).Строка инициализирована указанными в нейсимволами. Все строки, даже идентично записанные, считаются различными.Компилятор помещает в конец каждой строки нулевой байт \0, с тем чтобыпросматривающая строку программа могла определить ее конец. Передстоящим внутри строки символом двойной кавычки " должен быть поставленсимвол обратной косой черты \; кроме того, могут использоваться те жеусловия последовательности, что и в символьных константах. И последнее,обратная косая черта \, за которой непосредственно следует символ новойстроки, игнорируется.
Следующая ниже таблица суммирует некоторые свойства аппаратногооборудования, которые меняются от машины к машине. Хотя они и влияют напереносимость программ, на практике они представляют меньшую проблему,чем это может казаться заранее.
| dec pdp-11 | honeywell | ibm 370 | interdata 8/32 | |
|---|---|---|---|---|
| ascii | ascii | ebcdic | ascii | |
| char | 8 bits | 9 bits | 8 bits | 8 bits |
| int | 16 | 36 | 32 | 32 |
| short | 16 | 36 | 16 | 16 |
| long | 32 | 36 | 32 | 32 |
| float | 32 | 36 | 32 | 32 |
| double | 64 | 72 | 64 | 64 |
| range | -38/+38 | -38/+38 | -76/+76 | -76/+76 |
[Назад] [Содержание] [Вперед]
| Главная |