l
(ел) жəне
h
префикстері
қолданылуы мүмкін,
мысалы,
%lf
,
%hu.
h
префиксі
d
,
i
,
o
,
x
жəне
X
типтерінің бірімен қолданылса, ол аргумент
типінің
short int
екенін білдіреді, ал
u
типімен бірге тұрса, аргумент
типінің
short unsigned int
екенін көрсетеді.
Ал
l
префиксі
d,
i, o, x
жəне
X
типтерінің бірімен қолданылса, ол ар-
гумент
типінің
long int
екенін білдіреді,
u
типімен бірге тұрса –
long
unsigned int
екенін, ал
u
типі
e
,
E
,
f
,
g
жəне
G
типімен бірге қолданылса,
аргумент типі
fl oat
емес,
double
екенін білдіреді.
421
Мысал:
#include
int main(){
int int1 = 45, int2 = 13;
fl oat f = 3.621; double dbl =2.23;
char ch = 'z', *str = "ramambahari";
printf("int1 = %d| int2 = %3d| int2 = %-4d|\n", int1,
int2, int2);
printf("int1 = %X| int2 = %3x| int2 = %4o|\n", int1,
int2, int2);
printf("f = %f| f = %4.2f| f = %6.1f|\n", f, f, f);
printf("f = %g| f = %e| f = %+E|\n", f, f, f);
printf("dbl = %5.2lf| dbl = %e| dbl = %4.1G|\n", dbl,
dbl, dbl);
printf("ch = %c| ch = %3c|\n", ch, ch);
printf("str = %14s|\nstr = %-14s|\nstr = %s|\n", str,
str, str);
return
0;
}
Программа жұмысының нəтижесі:
intl = 45| int2 = 13| int2 = 13 |
intl = 2D| int2 = d| int2 = 15 |
f = 3.621000| f = 3.62 | f = 3.6 |
f = 3.621 | f = 3.621000e+000 | f = +3.621000E+000|
dbl = 2.23 | dbl = 2.230000e+000 | dbl = 2 |
ch = z| ch = z |
str = ramambahari |
str = ramambahari |
str = ramambahari|
422
3-ҚОСЫМША
Типтердің арифметикалық түрленулері
Егер өрнектер құрамына кіретін операндтардың типтері əртүрлі болып
келетін болса, онда типтерді түрлендіру орындалады. Төменде түрлендірулер
тізбегі көрсетілген.
□
char, unsigned char
немесе
short
типінің кез келген операндтары
int
типіне келесі ережелерге сəйкес түрлендіріледі:
▪
char
нөлмен немесе
char
типі үшін алдын ала келісім бойынша
алынған таңбамен кеңейтіледі;
▪
unsigned
char
нөлмен кеңейтіледі;
▪
signed
char
таңбамен кеңейтіледі;
▪
short
,
unsigned
short
жəне
enum
түрлендірілу барысында
өзгер мейді.
▪
Кейіннен кез келген екі операнд
int
, немесе
fl oat
,
doublе
немесе
long double
болып өзгереді.
□ Егер операндтардың біреуі
long
double
типті болса, онда екіншісі де
long
double
типіне түрлендіріледі.
□ Егер операндтардың біреуі
double
типті болса, онда екіншісі де
double
типіне түрлендіріледі.
□ Егер операндтардың біреуі
fl oat
типті болса, онда екіншісі де
fl oat
типіне түрлендіріледі.
□ Басқаша айтқанда, егер операндтардың біреуі
unsigned
long
типті
болса, онда екіншісі де
unsigned
long
типіне түрлендіріледі.
□ Əйтпесе, егер операндтардың біреуі
long
типті болса, онда екіншісі
long
типіне түрлендіріледі.
□ Əйтпесе, егер операндтардың біреуі
unsigned
типті болса, онда
екіншісі
unsigned
типіне түрлендіріледі.
□ Əйтпесе, екі операнд та
int
типті болуы керек.
Нəтиже типі де сол өрнек құрамындағы операндтар типтері сияқты бо-
лып келеді.
423
4-ҚОСЫМША
Стандартты кітапхананың тақырыптық файлдары
Енгізу/шығару
С стилінде енгізу/шығару функциялары
Символдармен жұмыс істеу функциялары
Көпбайтты символдар үшін С стилінде енгізу/шығару
функциялары
Файлдық ағымдар
Манипуляторлар
Енгізу/шығару ағымдарының базалық кластары
Енгізу/шығару құралдарын алдын ала жариялау
Стандартты объектілер жəне енгізу/шығару ағымдарымен
орындалатын операциялар
Кіріс ағымдары
Шығыс ағымдары
Тіркестік ағымдар
Ағымдарды буферлеу
Тіркестер
Символдарды жіктеу функциялары
С стилінде тіркестермен жұмыс істеу функциялары
Символдармен жұмыс істеу функциялары
Тіркестік класс
Контейнерлік кластар
Биттік жиын
Екіжақты кезек
Қосбайланысты тізім
Сөздік, дубликаттары бар сөздік
Кезек, басымдықтары бар кезек
Жиын, дубликаттары бар жиын
Стек
Бірөлшемді жиым
424
Алгоритмдер, итераторлар, утилиттер
Алгоритмдер
С кітапханасынан сұрыптау жəне іздеу
С стиліндегі мерзім мен уақыт
Функционалдық объектілер
Итераторлар
Контейнерлер үшін жадыны бөлушілер
Операторлар жəне жұптар
Диагностика, тілді сүйемелдеу, локализация
Assert макросы
С стиліндегі қателерді өңдеу
С стиліндегі шектелген мəндер макростары
С стиліндегі шектелген мəндер макростары
С стиліндегі локализация
С стиліндегі сигналдарды өңдеу
Аргументтер саны айнымалы функцияларды сүйемелдеу
С кітапханасы тілін сүйемелдеу
Программаны аяқтау
Жүйелік сағаттар
Аластауларды сүйемелдеу
Сандық шектеулер
Локализация кластары
Динамикалық жадымен жұмыс істеу
Стандартты ерекше жағдайлар
Типтерді динамикалық идентификациялау
Сандық есептеулер
Математикалық функциялар
Комплекстік сандар
С стиліндегі кездейсоқ сандар
Сандық операциялар
Сандық есептеулер үшін кластар
425
5-ҚОСЫМША
Тұрақтылар, макростар жəне стандартты
кітапхананың мəліметтер типтері
Бұл қосымшада көрсетілген тұрақтылар, макростар жəне типтер, негізінен,
С тілінен мұраланып келген стандартты кітапхананың функцияларында пай-
даланылады.
assert
void assert(int expression);
Егер
expression
өрнегінің мəні жалған (нөл) болса,
assert
макро-
сы программаның орындалуын үзеді. Жұмыс аяқталғанда, қате туралы
мынадай хабарлама шығарылады:
Assertion failed: expression,
fi le <имя_файла>, line <номер_строки>.
BUFSIZ
BUFSIZ
тұрақтысы мəліметтер ағымы буферінің көлемін байтпен
fopen()
,
freopen()
,
setbuf()
функциялары арқылы беру үшін қолданылады.
Мəліметтер ағымын ашу кезінде оған автоматты түрде көлемі
BUFSIZ
мəніне
тең буфер қосылады.
BUFSIZ
буферінің ең кіші мəні – 255 байт.
CHAR_BIT
CHAR_BIT
тұрақтысы мəліметтердің ең қысқа типін (стандарт бойынша
–
char
типі) битпен сақтайды.
CHAR_BIT
тұрақтысының ең кіші мəні – 8.
cin, cout, cerr, clog
Стандартты шеткері (перифериялық) құрылғылармен байланысқан ағым
кластары объектілері.
Объект
Мəліметтер ағымы
Класс
cin
stdin
istream
cout
stdout
ostream
cerr
stderr
ostream
clog
stderr
(буферленген)
ostream
CHAR_MAX, CHAR_MIN
CHAR_MAX
тұрақтысында
char
типі қабылдай алатын ең үлкен мəн
сақталады. Егер бір нақты нұсқада
signed char
типі сүйемелденетін болса,
онда
CHAR_MAX
мəні
SCHAR_MAX
мəнімен бірдей болады, əйтпесе –
UCHAR_MAX
мəніндей болады.
28-1140
|