Сокращенная запись операции присваивания

В языке Cи допускается две разновидности сокращений записи операции присваивания:

a) вместо записи:

v = v @ e;

где @ - арифметическая операция либо операция над битовым представлением операндов, рекомендуется использовать запись

v @ = e;

например, i = i + 2; « i + = 2;

б) вместо записи (автоувеличение):

x = x # 1;

где # - символ + либо -, обозначающий операцию инкремента либо декремента, x - целочисленная переменная, переменная-указатель), рекомендуется использовать запись

префиксная: ##x; постфиксная: x##;

Если операции инкремента или декремента в коде программы используются в чистом виде, то различий в постфиксной и префиксной формами нет. Если же эти операции используются в выражении, то при использовании префиксной формы (##x), сначала значение x изменится на 1, а затем будет использовано в выражении. В постфиксной форме (x##), значение сначала используется в выражении, а затем изменяется на 1. Операции над указателями рассмотрим позже.

Примеры использования сокращений (фрагменты программ):

1) int i,j,k;

float x,y;

...

x* = y; « x = x*y;

i+ = 2; « i = i+2;

x/ = y+15; « x = x/(y+15);

k--; « k = k-1;

--k; « k = k-1;

j = i++; « j = i; i = i+1;

j = ++i; « i = i+1; j = i;

 

2) int n,a,b,c,d;

n = 2; a = b = c = 0;

a = ++n; // n=3, a=3

a+ = 2; // a=5

b = n++; // b=3, n=4

b- = 2; // b=1

c = --n; // n=3, c=3

c* = 2; // c=6

d = n--; // d=3, n=2

d% = 2; // d=1

 

Рекомендации использования сокращений обоснованы возможностью оптимизации программы. Например, схема выражения вида v@=e соответствует схеме выполнения многих машинных команд типа "регистр-память", а использование ##х и x## наличием в Си специальных процессорных команд инкремента и декремента.

 








Дата добавления: 2015-09-11; просмотров: 899;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.