68974

Алфавіт, ідентифікатори, службові слова

Лекция

Информатика, кибернетика и программирование

До специфікаторів типів відносяться: chr символьний; double дійсний з подвійною точністю з плаваючою крапкою; enum перелічуваний тип перелік визначення цілочисельних констант для кожної з яких вводяться ім’я і значення; floаt дійсний з плаваючою крапкою; int цілий; long цілий збільшеної довжини...

Украинкский

2014-09-28

103 KB

0 чел.

Лекція №1

Тема: Алфавіт, ідентифікатори, службові слова

План заняття

  1.  Алфавіт
  2.  Ідентифікатори
  3.  Службові слова
  4.  Операції
  5.  Базові типи даних

Алфавіт

В алфавіт мови Сі входять:

•  прописні   і   рядкові   букви   латинського   алфавіту (A,B...,Z, а, b..., z)

•  цифри: 0,1,2,3,4,5,6,7,8,9

•  спеціальні знаки: "        { }    |    [ ]    ()    +    -    /     % \    ; ' . :?<   =   >_!&*#    ~    ^

•  не зображаються символи ("узагальнені пробільні символи"), які  використовуються для відділення лексем один від одного (наприклад, пропуск, табуляція, перехід на новий рядок).

В коментарях, рядках і символьних константах можуть використовуватися і інші літери (наприклад, російські букви). Коментар формується як послідовність знаків (символів), обмежена зліва знаками /*, а справа - знаками */. Наприклад:

/* Це коментар */

В стандартній мові Сі коментарі заборонено вкладати один в одного, тобто запис

/* текст-1  /* текст-2  */ текст-3  */ помилкова - " текст-3" не вважається коментарем.

В мові Сі шість класів лексем: вільно вибирані і використовуються ідентифікатори, службові (ключові) слова, константи, рядки (рядкові константи), операції (знаки операцій), роздільники (знаки пунктуації).

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

Послідовність букв, цифр і символів підкреслення "_", що починається з букви або символу підкреслення вважається ідентифікатором мови Сі. Приклади ідентифікаторів: КОМ_16,        size88        _MIN,        TIME,        time Прописні і рядкові букви розрізняються, тобто два останніх ідентифікатори різні. Ідентифікатори можуть мати будь-яку довжину, але компілятор враховує не більш 31-го символу від початку ідентифікатора.

Службові слова

В стандарті мови визначені наступні службові слова:

Для позначення типів даних використовуються специфікатори типів і кваліфікатори типів. До специфікаторів типів відносяться:

char  - символьний;

double - дійсний з подвійною точністю з плаваючою крапкою;

enum - перелічуваний тип (перелік) — визначення цілочисельних констант, для кожної з яких вводяться ім'я і значення;

float  - дійсний з плаваючою крапкою;

int  - цілий;

long  - цілий збільшеної довжини (довге ціле);

short  - цілий зменшеної довжини (коротке ціле);

struct  - структура (структурний тип);

signed - знаковий, тобто ціле із знаком (старший біт вважається знаковим);

union  - об'єднання (об'єднуючий тип);

unsigned - беззнаковий, тобто ціле без знака (старший біт не вважається знаковим);

void - відсутність значення;

typedef - вводить синонім позначення типу (визначає скорочене найменування для позначення типу).

Кваліфікатори типу:

const - кваліфікатор об'єкту, що має постійне значення, тобто доступного тільки для читання;

volatile - кваліфікатор об'єкту, значення якого може змінитися без явних вказівок програміста

Для позначення класів пам'яті використовуються:

auto - автоматичний;

extern  - зовнішній;

register  - регістровий;

static  - статичний.

Для побудови операторів використовуються службові слова:

break  - вийти з циклу або перемикач;

continue - завершити поточну ітерацію циклу (продовжити цикл, перейшовши до наступної ітерації);

do - виконувати (заголовок оператора циклу з постумовою);

for   - для   (заголовок   оператора   параметричногоциклу);

goto - перейти (безумовний перехід);

if    - якщо - позначення умовного оператора;

return   - повернення (з функції);

switch   - перемикач;

while - поки (заголовок циклу з предумовою або завершення циклу do).

До службових слів також віднесені наступні ідентифікатори:

default - визначає дії за відсутності потрібного варіанту в операторі switch;

case — визначає варіант в операторі switch;

else  - входить в оператор if, визначаючи альтернативну гілка;

sizeof - операція визначення розміру операнда (в байтах).

Операції

Операції—це комбінації символів, які специфікують дії по перетворенню значень. Компілятор мови Сі інтерпретує кожну з цих комбінацій як самостійну лексему. В таблиці 2. представлений список операцій. Операції повинні використовуватися точно так, як вони відрекомендовані в таблиці, без пробільних символів між символами в тих операціях,   які   представлені   декількома   символами.

Операція

Найменування

!

Логічне ні

~

Зворотній код

+

Додавання

-

Віднімання

*

Множення, непряма адресація

/

Ділення

%

Остача від ділення

<<

Зсув вліво

>>

Зсув вправо

<

Менше

<=

Менше рівне

>

Більше

>=

Більше або рівно

==

Рівно

!=

Не рівно

&

Порозрядне і, адресація

|

Порозрядне включаючи або

^

Порозрядне виключаючи або

&&

Логічне і

||

Логічне або

,

Послідовне виконання

?:

Умовна операція

++

Інкремент

--

Декремент

=

Просте присвоювання

+=

Присвоювання зі складанням

-=

Присвоювання з відніманням

*=

Присвоювання з множенням

/=

Присвоювання з діленням

%=

Присвоювання з остачею від ділення

>>=

Присвоювання зі здвигом вправо

<<=

Присвоювання зі здвигом вліво

&=

Присвоювання з порозрядним і

|=

Присвоювання з порозрядним або

^=

Присвоювання з порозрядним виключаючим або

Примітка. Умовна операція ?: є не двосимвольною, а тернарною (трьохоперандною) операцією. Вона має наступний формат:

<операнд1> ? <операнд2> : <операнд3>

Базові типи даних

В мові Сі реалізований набір типів даних, які називаються  "базовими типами". Специфікації цих типів перераховані в таблиці 1.

Таблиця №1

Базові типи

Специфікація типів

Цілі

Signed char

Signed int

Signed short int

Signed long int

Unsigned char

Unsigned int

Unsigned short int

Unsigned long int

Знаковий символьний

Знаковий цілий

Знаковий короткий цілий

Знаковий довгий цілий

Без знаковий символьний

Без знаковий цілий

Без знаковий короткий цілий

Без знаковий довгий цілий

Плаваючі

Float

Double

Long float

Long double

Плаваючий одинарної точності

Плаваючий подвійної точності

Довгий плаваючий одинарної точності

Довгий плаваючий подвійної точності

Інші

Void

Enum

Пустий

Перелічуваний

Тип long float реалізований тільки у версії 4.0 СП МSС і еквівалентний типу double. У версії 5.0 СП MSC і в СП ТС реалізований тип long double, причому у версії 5.0 СП MSC і версія 1.5 СП ТС він еквівалентний типу double, а у версії 2.0 СП ТС є самостійним типом розміром 80 бітів.

Типи char, int, short і long мають дві форми—знакову (signed) і беззнакову (unsigned). В сукупності вони утворюють цілий тип. Перелічуваний тип також використовується для представлення цілих значень проте змінна перелічуваного типу може приймати значення тільки з набору, заданого в її оголошенні. Специфікації типів float і double відносяться до плаваючого типу.

Цілий тип (включаючи перелічуваний тип) і плаваючий тип в сукупності утворюють арифметичний тип.

Тип void (порожній) має спеціальне призначення. Вказання специфікації типу void в оголошенні функції означає, що функція не повертає значень. Вказівка типу void в списку оголошень аргументів в оголошенні функції означає що функція не приймає аргументів.

При записі специфікацій цілого і плаваючого типу допустимі скорочення, приведені в таблиці 2. Наприклад, в цілих типах ключове слово signed може бути опущено. Якщо ключове слово unsigned відсутнє в записі специфікації типу short int або long, то тип цілого буде знаковим, навіть якщо упущено ключове слово signed.

За умовчанням тип char завжди має знак. Проте існує опція компілятора мови Сі, яка дозволяє змінити умовчання для char із знакового типа на беззнаковий. Якщо ця опція задана, то скорочення char має той же сенс, що і unsigned char, і отже, для оголошення символьної змінної із знаком   повинне бути записано ключове слово signed.

                                                                                      Таблиця   №2.

Специфікація типу

Скорочення

Signed char

Char

Signed int

Signed, int

Signed short int

Short,signed short

Signed long int

Long, signed long


 

А также другие работы, которые могут Вас заинтересовать

26351. Начало Французской буржуазной революции. Взятие Бастилии 14.43 KB
  12 июля в Париж проникли известия об отставке министра Неккера которому король приказал покинуть пределы Франции. Уже вечером 12 июля произошли первые столкновения народа с правительственными войсками. Утром 13 июля над Парижем загудел набат призывая парижан к восстанию. 13 июля парижские выборщики организовали Постоянный комитет преобразованный позднее в коммуну Парижский муниципалитет.
26352. Буржуазные преобразования во Франции в 1789 – 1791 г 21.47 KB
  Уже в июле Собрание создало комиссию по подготовке декларации и конституции Франции. Однако изза роста крестьянских восстаний Собрание безотлагательно начинает с решения аграрного вопроса. Призывая остальную часть дворянства пожертвовать своими правами в интересах справедливости и принести жертвы на алтарь отечества Учредительное собрание 11 августа приняло декреты по аграрному вопросу. Таким образом не решив сути аграрного вопроса Учредительное собрание в декретах 4 11 августа объявило что полностью уничтожает феодальный режим.
26353. Общественно – политическая жизнь Франции в 1791 – 1792 гг. Вареннский кризис и Конституция 1791г 21.07 KB
  и переезд короля и Собрания в Париж резиденцией монархии стал дворец в Тюильри. Дантон Шометт Кондорсе выступали ее горячими поборниками на собраниях секций. Депутаты Учредительного собрания на момент разбирательства временно отрешили короля от власти. Не теряя надежды после стольких преобразований договориться с Людовиком XVI и установить в королевстве конституционную монархию а также стремясь дать самый решительный отпор сторонникам республики депутаты Собрания прикладывали все усилия для спасения сильно пошатнувшейся репутации...
26354. Второй этап революции. 1792-1793 г. Начало революционных войн 30.8 KB
  Свержение монархии во Франции Подготовка интервенции против революционной Франции Революция во Франции способствовала подъему антифеодальной борьбы в других странах. Не только в Лондоне и Петербурге Берлине и Вене в Варшаве и Будапеште но и за океаном прогрессивные общественные круги с жадностью ловили вести из революционной Франции. Чем очевиднее становилось сочувствие к Французской революции и ее прогрессивным идеям со стороны передовой общественности всех стран тем большую ненависть к революционной Франции обнаруживали европейские...
26355. Третий этап революции. 1793-1794 г. Якобинская диктатура 14.23 KB
  Был ее высшим этапом якобинской диктатурой. Складывавшаяся в ходе напряженной классовой борьбы система якобинской диктатуры сочетала сильную и твердую централизованную власть с идущей снизу широкой народной инициативой. Революционная инициатива масс в период якобинской диктатуры проявилась особенно ярко. Но в самой якобинской диктатуре и в якобинском блоке объединявшем классово разнородные элементы были заложены глубокие внутренние противоречия.
26356. Кризис Якобинской диктатуры и переворот 9 термидора 1794 г 19.66 KB
  Переворот был предпринят группой якобинцевчленов Конвента недовольных политикой Робеспьера и прежде всего по разным причинам опасавшихся за свою личную безопасность. Конвент постановил напечатать речь Робеспьера но Бурдон из Уазы а за ним БийоВаренн потребовали предварительного рассмотрения её комитетами. У Робеспьера потребовали чтобы он назвал имена обвиняемых но он отказался. 27 июля 9 термидора заседание Конвента началось с доклада СенЖюста но председательствующий Колло дЭрбуа прервал его и предоставил слово БийоВаренну...
26357. Франция в годы термидорианской реакции 17.5 KB
  якобинский клуб был закрыт по постановлению Конвента. Термидорианцы поспешили ликвидировать социальноэкономическое законодательство якобинского Конвента. Восставшим удалось захватить здание Конвента. 4 прериаля после ожесточенной борьбы восстание было подавлено вооруженными силами термидорианского Конвента.
26358. Внутренняя и внешняя политика Директории 23.16 KB
  правительственные войска заняли здания Совета пятисот и Совета старейшин и арестовали часть депутатов. Они били войска Австрийской империи и ее союзников в которых царила рутина насаждавшаяся спесивыми бездарными военачальниками. Основные удары по австрийским войскам нанесла французская армия в Северной Италии под командованием Бонапарта. 10 мая он разбил австрийские войска в сражении при Лоди вошел в Милан и вскоре приступил к осаде главной австрийской военной базы крепости Мантуи.
26359. Государственный переворот 18 брюмера 1799 г. Итоги революции 18.89 KB
  Сийес распустил слух об опасном якобинском заговоре и устроил так что те депутаты совета старейшин на которых он не рассчитывал или которых боялся не попали на заседание в котором предполагалось принять задуманные заговорщиками решения. Собравшиеся депутаты единогласно вотировали перенесение законодательного корпуса в СенКлу где оба совета должны были собраться на другой день не ранее полудня. Бонапарт окружённый генералами и офицерами немедленно отправился на заседание совета где произнес короткую речь с обещанием поддерживать...