Модификация или видоизменение объектов в языке Си применяется для того, чтобы изменить диапазон значений или область действия объекта. Ключевые слова, которые применяются для модификации, называются модификаторами.
Модификатор unsigned предназначен для того, чтобы объявлять беззнаковую целочисленную переменную, тем самым изменив диапазон представления этой переменной.
Модификатор extern предназначен для использования в данном программном модуле объекта, который объявлен в другом программном модуле.
Файл 1
Файл 2
#include <stdio.h> int x, y, z; extern void func(void); int main() {
printf("x= ");
scanf("%d", &x);
printf("y= ");
scanf("%d", &y);
func();
printf("z= %d",z);
getchar(); getchar();
return 0; }
extern int x, y, z; void func(void) {
z = x + y; }
Пример окна проекта, состоящего из двух файлов
Модификатор static позволяет связать с идентификатором фиксированный адрес (ячейку памяти). Если объект расположен по некоторому фиксированному адресу, то он называется статическим. Объект, который располагается в произвольном месте оперативной памяти, называется динамическим. Если необходимо динамический объект сделать статическим, то используется модификатор static. Переменные, объявленные с использованием модификатора static сохраняют свои значения при входе и выходе из функции, однако не являются глобальными.
Пример
#include <stdio.h> void autofunc(void) {
static int k=1; // статический объект
printf(" \n k = %d ", k);
k=k+1; } int main(){
for(int i = 0; i<=5; i++)
autofunc();
getchar();
return 0; }
Переменная k в функции autofunc() зафиксирована в оперативной памяти. Инициализация k проводится только один раз — при первом вызове функции. При повторном обращении к функции autofunc() инициализация переменной k не будет производиться. Значение переменной k и ее адрес сохраняются в оперативной памяти, однако эта переменная не будет доступна из других функций. Результат выполнения программы
Модификатор register предназначен для того, чтобы поместить переменную в один из регистров общего назначения центрального процессора при наличии свободного регистра. Благодаря этому повышается скорость работы с данными. Это необходимо для создания управляющих программ, где требуется высокая скорость обработки данных.