@alexey_abramov

Как реализовать раздельную область видимости а 1 сишнике?

Здравствуйте. Имеется 1 си файл. В нем есть 1 переменная, и три функции. Переменная должна работатт с 2 функциями, и оставшиеся функция не должна уметь рабтать с ней. Возможн ли это реализовать в одном файле? Или нет? Пытался сделать путем фигурных скобок,но вне функции нельзя.
  • Вопрос задан
  • 171 просмотр
Пригласить эксперта
Ответы на вопрос 3
GavriKos
@GavriKos
Возможно конечно. Например, не делать переменную глобальной, а объявить ее в main и передавать указатели в две другие функции.
Ответ написан
Комментировать
magalex
@magalex
Архитектор распределённых систем управления
Не совсем понятно, что значит переменная должна работать с функциями. Возможно Вы имели ввиду, что переменная должна быть доступна из функций. Тогда решение в лоб:
функция1()
переменная
функция2()
функция3()

таким образом, функция2 и функция3 смогут работать с переменной, а функция1 - нет.

Но лучше сделать, как предложил GavriKos :
функция1()
функция2(переменная*)
функция3(переменная*)

таким образом от порядка объявления функций ничего не зависит, и Вы избавляетесь от возможных побочных эффектов в своей программе
Ответ написан
Комментировать
@Xano
область видимости в общем случае рассчитывается очень просто:
в N строчке видно всё, что написано в строчках от 0 до N - 1 ( с учетом уровней вложенности фигурных скобок )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы