Я пишу MATLAB приложение, которое имеет много функций, разбросанных по разным файлам. У меня есть логгер, который представляет собой struct с указателем функции, и я использую его для записи информации, которую может видеть пользователь (то есть, какая функция выполняется в данный момент, результаты вычислений и т.д.). Причина, по которой я использую struct для своего логгера, а не просто fprintf()
в том, что в будущем я могу легко заменить его на XML-логгер, HTML-логгер и т.д.
Поскольку мой код состоит из множества функций, вызывающих друг друга, я объявил свою структуру logger как глобальную, чтобы не передавать ее всем моим многочисленным функциям. Однако, куда бы я ни посмотрел, я вижу, что глобальные переменные являются воплощением зла в MATLAB и значительно замедлят работу моей программы.
Есть ли способ иметь переменные, доступные во всех файлах, не передавая их в качестве входных параметров, и не страдая от серьезного снижения производительности?