С език за програмиране
Променливата може да бъде определена по външните ниво само веднъж във файла източник. Ако зададете съхранение клас спецификатор статична. другите изходни файлове в променливите със същото име, могат да бъдат определени. Тъй като всеки дефиниция на статичен видим само в рамките на своя източник файл, след конфликта няма да възникнат.
С език за програмиране
екстернант INT I; / * Позоваване и определено по-долу * /
ФОРМАТ ( "\ п.", I); / * I е равно на 4 * / следваща ();
INT I = 3; / * Определяне на I * / следваща ()
ФОРМАТ ( "\ п.", I); / * I е равно на 5 * / други ();
С език за програмиране
съхранение клас спецификатор регистър инструктира компилатора да разпредели памет за него в променлива регистър, ако е възможно. Използването на регистър на паметта обикновено води до по-бързо време за достъп и до по-малък размер на получения код. Променливите, декларирани с класа на съхранение регистър имат една и съща видимостта като променлива автоматично.
Променлива обявен на национално равнище със статични за съхранение клас спецификатор. Той разполага с глобална живот, и се вижда само в рамките на блока, в който е обявена. За разлика от променливата автоматично. Променливите, декларирани като статични. запази тяхната стойност в края на блока.
Memory статични променливи на класа може да се инициализира с константен израз. Ако няма изрично инициализация, класът на съхранение статична променлива
С език за програмиране
Тя автоматично се настройва на 0. Инициализиращите се прави веднъж по време на компилация. Инициализиране на променлива клас статичната памет не се повтарят в новия входа на блока.
Променлива обявен с ученик за съхранение клас спецификатор. Това е препратка към променлива със същото име външно зададени във всяка програма източник файл.
Пример: INT I = 1; Основната ()
/ * Позоваване I, дефинирани по-горе * / екстернант междинно съединение I;
/ * Първоначална стойност е нула; а е видим само в основната * / статичен Int А;
/ * Б се съхранява в регистър, ако е възможно * / регистър междинно съединение б = 0;
/ * Клас съхранение подразбиране е автоматично * / междинно съединение с = 0;
/ * Стойностите печатни са 1, 0, 0, 0 * / ФОРМАТ (, I, а, б, в "\ п \ п \ п \ п ...."); други ();
/ * I е предефинирани * / INT I = 16;
/ * Това а е видим само в друга * / статичен Int а = 2;
/ * Стойностите са отпечатани 16, 4 * / ФОРМАТ (, I, а "\ п \ п ..");
С език за програмиране
Аз променлива външно ниво. Променлива клас статичната памет автоматично се настройва на 0. След инициализиране се пропуска. Print извикване на функция (ако приемем, че функцията за печат е дефинирано в определено място на източник програма) отпечатва стойност 1. 0. 0 0 ..
В други функции. променливата I се предефинира като локална променлива с начална стойност на 16. Това не се отразява на стойността на външна променлива аз. Променливата е обявен като клас съхранение статична променлива с начална стойност на 2. Това не е в противоречие с една. декларирани в основната функция. тъй като видимостта на променливи на класа статична памет вътрешно ограничен до блока, в който е обявена.
Функциите могат да се декларират с класа на съхранение ТЕХНОЛОЗИТЕ статичен или ученик. Функциите винаги глобален живот.
Функции, декларирани като ученик видими в рамките на всички изходни файлове, които правят програмата. Всяка функция може да предизвика екстернант функция.
Синтактично инициализатор запис се предхожда от знак
С език за програмиране
Променливите, декларирани при външното ниво, може да се инициализира. Ако те не са изрично инициализира, те се свежда до нула при съставянето или свързването. Всяка променлива декларирана с клас Спецификаторът за съхранение статична. Той може да се инициализира с константен израз. Инициализиране статични променливи клас се извършва веднъж по време на компилация. Ако няма изрично инициализация на класа външна статични променливи на автоматично се задават на нула.
Основни видове и типове показалеца
Стойността определя на променливата експресията. За да изразите правилата за обмен са валидни.
С език за програмиране
Списъкът на инициализатори
За всеки списък на стойностите инициализация на постоянни изрази са определени по реда на елементите на композитен променлива. Когато комбинацията се инициализира, списъкът с инициализатор е единственият постоянен израз. Стойността на постоянна експресия се определя на първия елемент на комбинацията.
Ако списъкът на инициализация стойности по-малки, отколкото в композитната тип, а след това на свободната памет инициализира с нула. Ако броят на инициализация стойности повече, отколкото се изисква, след грешка е хвърлен.
Тези правила важат за всеки вложен списък инициализатор, по същия начин, както го правят в цялостната структура.
Тези допълнителни запетаи са разрешени, но не е необходимо. Тя изисква само тези запетаи, които споделят постоянните изрази и списъци на инициализация. Ако списъкът на инициализатори не е структурирана от композитен обект, а след това му стойност се определя в реда, в който елементите на закачен обекта.
Скоби може да се появи около отделните инициализират в списъка.
Когато компоненти се инициализират променливите, трябва да се уверите, че правилното използване на скоби и списъци на инициализират. Следният пример илюстрира по-подробно тълкуване на презрамките на компилатора.
С език за програмиране
Масивът може да се инициализира с низ буквално.
овъгляване код [] = "ABC";
инициализира кода като масив от символи на четирите елемента. Четвъртият елемент е характерът \ 0. който завърши всички низовете.
овъгляване код [3] = "ABCD"
В примера, само първите три знака са възложени на код инициализатор масив. D символ и нула символ се изхвърля.
Ако низът е по-кратък от определения размер на масива, останалите елементи на масива се инициализира с нула (символ \ 0).
Видове структури, комбинирани и трансфери
С език за програмиране
която е обявена. структура подравняване Име или изброяване е маркер.
typedef
Имената на по-големите платци на структурни видове и комбиниране са тип спецификатори за всеки от тях. Имената на показалеца за видове, масив и функция дава със следната синтактична форма:
С език за програмиране
абстрактно declarator
Изразяване и прехвърляне
В C са определени стойности на изразяване. Освен проста операция възлагане от =. С поддържа съединение операция задача че преди заданието изпълнява допълнителни операции на техните операнди. Крайната стойност на резултата зависи от предимството на операции, както и от страничните ефекти, ако те се появят. Редът на оценка се определя от обединението на операнди и операции в израз. Странични действия - тя се променя състоянието на машината, причинени от процеса на оценяване израз.
В израз с страничен ефект, изчисляването на операнди стойности може да зависи от друга. За същите операции по реда, в който са изчислени операндите, в резултат на експресия зависи.
Стойността, представена чрез всяка операнд в експресията е от тип, който може да бъде превърнат в други видове в даден контекст. Тип реализации се провеждат в
Свързани статии