С++ те бағдарламалау пәнінен дәрістер



бет51/79
Дата07.02.2022
өлшемі380,73 Kb.
#94133
түріПрограмма
1   ...   47   48   49   50   51   52   53   54   ...   79
Байланысты:
Дәріс сабақтары С каз

Ішкі объектілер. Си тіліндегі қарапайым немесе күрделі программа бірнеше мәтіндік файлдарда орналасқан, функциялар жиынынан тұрады. Программа мәтіні бар бөлек файлды кейде программалық модуль деп те атайды, бірақ модульдерге немесе файлдарға қатысты қатаң терминологиялық келісімдер жоқ. Программа функциялар жиынынан тұрады. Барлық ішкі функциялар, функцияның ішінде орналасқандықтан Си тілінің ережесі бойынша басқа функцияны анықтауға болмайды. Барлық функцияларда, тіпті әртүрлі файлдарда орналасқанның өзінде әртүрлі атаулар болуы керек. Функциялардың бірдей атауы бір және сол функцияға ғана қатысты болуы керек.
Функциядан басқа, программада ішкі обьектілер – айнымалылар, нұсқаушылар, массивтер және т.б қолданылады. Сыртқы объектілер функция мәтінінің сыртында анықталуы керек.
Сыртқы объектілер программаның көптеген функцияларынан алына алады, бірақта бұндай рұқсат алу үнемі автоматты түрде болмайды-жағдайлар қатарында программисттің қосымша араласуы қажет. Егер объект программамен бірге файлдың басында анықталған болса, онда ол файлда орналасқан барлық функциялар үшін глобальды болып табылады, және соның ішінде ешқандай қосымша жазылымдарсыз-ақ байланысу мүмкін болады. (Шектеу - егер функция ішінде глобальды объект атауы ішкі объект ретінде қолданылса, онда сыртқы объект мүмкін емес болып қалады, яғни "көрінбейтін" дәл осы функция денесінде.).

Суретте:


  • X объектісі: глобальді сияқты f11(), f12()-де болады; сыртқы сияқты файл 2-де extern X сипаттамасы енгізілген тек сол функцияларда ғана болады;

  • Y объектісі: f21( ) және f22( )-де глобальды сияқты; сыртқы сияқты 1 файлының extern Y сипаттамасы енгізілген сол функцияларында;

  • Z объектісі: f22( )-де және extern Z сипаттамасы енгізілген файл 1 және файл 2-нің барлық функцияларында глобальды сияқты болады.

Егер сыртқы объект басқа файлдың немесе функцияның функциясы үшін рұқсат етілген болуы қажет болса, онда ол сұхбаттасудан бұрын қосымша кілттік extern сөзін қолданумен бірге қосымша сипатталған болуы керек. (Наличие этого слова по умолчанию предполагается и для всех функций, т.е. не требуется в их прототипах.) Ондай сипаттама, extern сөзінің спецификаторымен бірге файлдың басында енгізіледі, және сонда объект файлдың барлық функцияларында доступен. Бірақта бұл сипаттама бір функцияның денесінде орналасуы мүмкін, онда объект сонда(ішнде) ғана доступен.


Сыртқы объект сипаттамасы оның анықтамасы емес. Естеріңізде сақтаңыздар: анықтамада объектіге ылғида жады бөлінеді, және ол инициализирленген болуы мүмкін. Анықтама мысалы:
double summa[5];
char D_Phil []="Doctor of Philosophy";
long M=1000;
Сипаттауда инициализация мүмкін емес, массивтер элементтерінің санын да көрсетуге болмайды:
extern double summa [ ];
extern char D_Phil [ ];
extern long M;
Өзін-өзі бақылау сұрақтары:

  1. Қандай жады кластары бар?

  2. Автоматты жады дегеніміз не?

  3. Динамикалық жады дегеніміз не?

  4. Статистикалық ішкі жады дегеніміз не?

  5. Қандай жады кластарының спецификаторлары қолданылады?

  6. Автоматты айнымалылар дегенімізе?

  7. Статистикалық айнымалылар дегеніміз не?

  8. Ікі айнымалылар ьдегеніміз не?





Достарыңызбен бөлісу:
1   ...   47   48   49   50   51   52   53   54   ...   79




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет