Введение в статическое ключевое слово в C

Статическое ключевое слово в C меняется по-разному в том смысле, что это ключевое слово, которое можно использовать как с переменными, так и с функциями. Следовательно, очень важно получить разграничение как для получения фактических характеристик, так и для поведения ключевого слова, особенно в терминах языка Си. Немного трудно получить полное понимание для начинающего, поэтому мы разберемся с синтаксисом, с фактической работой, как он работает в C, с некоторыми нормами и правилами, которые необходимо соблюдать, так как может быть немного запутанно узнать, когда его использовать для область видимости переменной и когда использовать для области видимости функционального блока.

Синтаксис

1. Синтаксис статического ключевого слова в C при определении переменной:

static
static
Examples of syntax for static variables:
static int run = 0;
int static sleep = 0;

2. Синтаксис статического ключевого слова в C при определении функции:

static
static
Examples of syntax for static functions:
static void run ()
(
)
void static sleep ()
(
)

Как Static Keyword работает в C?

По сути, есть два способа, которыми статическое ключевое слово работает в терминах C.

  • Ключевое слово static внутри функции.
  • Ключевое слово static вне функции.

1. Статическое ключевое слово внутри функции

Объявление переменной внутри функции связано с временем компиляции и продолжительностью хранения переменной в вызове функции. Проще говоря, переменные, определенные как статические, расширяют свою область видимости для нескольких вызовов функций и, будучи объявлены, не могут потерять свою область видимости до конца выполнения программы. Он начинает определять свою область во время компиляции.

пример

# include
int main ()
(
run ();
run ();
run ();
)
void run ()
(
static int running = 0;
++running;
printf ("The function \"run\" was called %d times.\n", running);
)

Выход:

2. Статическое ключевое слово вне функции

Как только ключевое слово static объявлено вне функции, оно ограничивает область видимости переменной и становится видимым только текущему файлу, что означает, что функция ограничит область действия своим исходным файлом. Доступ к этой статической переменной или функции получает ограничение из другого исходного файла.

Хотя считается хорошим объявить функцию как статическую, которая помогает инкапсулировать данные в определенную область. Люди из ООП-фона или Java-фона могут легко связать его с функционированием частного и публичного ключевых слов.

пример

Чтобы определить переменные во внешней функции, т. Е. На глобальном уровне, нам нужно определить хотя бы статическое ключевое слово.

Определите одну статическую переменную в одном исходном файле и ту же переменную во второй переменной в другом исходном файле.

Source1.c
static int sleep = 0;
Source2.c
static int sleep= 0;
static void sleep ()
(
static int sleeping = 0;
++ sleeping;
printf (“the function \ “sleep\” was called %d times.\n”, sleeping);
)

Выход:

Указание минимального размера параметра массива

Есть одно очень важное применение, которое мы иногда игнорируем, давайте посмотрим на него.

Мы также можем указать компилятору параметр хранения для минимального объявления элементов в указателе массива на функцию. Но этот случай используется очень редко (до компилятора C99).

пример

Void print Array (int myArray (static 10), int size)
(
int i;
printf (“(“);
for (i<0; i (
printf (“%d”, myArray(i));
)
printf (“) \n”);
)
Void print Array (int myArray (static 10), int size)
(
int i;
printf (“(“);
for (i<0; i (
printf (“%d”, myArray(i));
)
printf (“) \n”);
)

По сути, это сообщит, что аргумент не будет нулевым.

Правила и положения для статического ключевого слова в C

1. С точки зрения статической переменной

  • Статическая переменная всегда остается активной, когда программа находится в рабочем состоянии, в отличие от auto и зарезервированных ключевых слов.
  • Хранение и выделение памяти происходит в сегменте данных, а не в сегменте стека.
  • По умолчанию, если переменная не объявлена ​​ни с каким значением по умолчанию, она будет явно определена компилятором как 0.
  • Объявление статических переменных в основном выполняется с использованием константных литералов.
  • В первую очередь считается, что мы не должны определять статическую переменную внутри функции, это в основном делает весь функциональный модуль немного сложным.

2. С точки зрения статической функции

  • Объявление переменной по умолчанию считается глобальным по умолчанию, поэтому использование статического ключевого слова с функцией ограничивает его в пределах видимости, ограничивая область видимости в том же исходном файле.
  • Хорошей характеристикой статичности функции является возможность многократного использования, то есть мы можем вызывать одну и ту же функцию несколько раз, когда это требуется для выполнения.

преимущества

  • Считать переменную статической можно в том смысле, что она помогает оптимизировать весь поток кода.
  • Повторное использование и переопределение помогают компилятору вызывать любую переменную внутри себя, не доминируя при этом ни одному другому ключевому слову, например, extern.
  • Еще одно преимущество заключается в повышении читабельности таким образом, чтобы в будущем получалось подтверждение того, что файл объявлен как статический и недоступен для любого другого файла или исходного файла.
  • Это также мешает многим объявить файл c, т. Е. Изменить его как некоторую другую переменную extern.

Вывод

  • Термин «статический» имеет свою тенденцию, будь то осмысленным или бессмысленным. Разные языки программирования имеют разные значения, связанные только со статическим ключевым словом. Объектно-ориентированный язык, он очень хорошо ведет себя со свойством инкапсуляции.
  • В терминах C, C # и C ++ он имеет другую природу. Некоторые считают, что использование static лучше всего из-за его преимуществ, таких как оптимизация, возможность повторного использования, ограничение объема. Большая часть которых является подтверждением окончательного читаемого файла.
  • Позже, когда некоторые наивные пользователи могут легко узнать, не совпадают ли два исходных файла, подсчитав внутреннее содержимое статических функций и статической переменной, как это произойдет из-за ошибки компиляции.
  • Но с точки зрения C это не считается безопасным и надежным способом, потому что внутренняя связь между потоками становится небезопасной и сложной, поскольку в конечном итоге она становится глобальной переменной. Поэтому иногда считается, что с точки зрения C не очень общепринятым использовать статическое ключевое слово в C.

Рекомендуемые статьи

Это руководство по статическому ключевому слову в C. Здесь мы обсуждаем, как работает статическое ключевое слово в C с правилами и положениями. Вы также можете посмотреть следующую статью, чтобы узнать больше -

  1. Переменные в C
  2. Обмен в C
  3. Математические функции в C
  4. Обратный номер в C
  5. Обмен в PHP
  6. Ключевые слова PHP
  7. Топ-5 атрибутов событий HTML с примерами