2017-02-21 8 views
0

Я работаю с проектом Arduino в студиях Atmel. Мне нужно объявить, инициализировать и использовать int в одном разделе кода (settings.cpp/settings.h), а также использовать его в другом файле .cpp (error.cpp). Мне было интересно, что лучший способ сделать это.Использование переменной в нескольких файлах Cpp

Мой план состоял в том, чтобы объявить int как extern int в settings.h, инициализировать его в settings.cpp, а затем #include settings.h в error.cpp.

Я просто интересно, если это лучший способ лучший способ сделать это, или мне нужно, чтобы рассмотреть что-либо при предоставлении доступа к error.cpp settings.h

Спасибо.

ответ

1

Другим способом было бы определить его private в settings.h и инициализировать его в settings.cpp.

Затем вы можете использовать int getVar() и void setVar(int), которые вы объявляете публичными функциями в settings.h и реализуете в settings.cpp.

Из вашего класса ошибок вы включаете settings.h, и вы можете назвать эти функции. Этот подход - это больше работы, но он имеет тенденцию быть более безопасным, поскольку у вас больше контроля над тем, что происходит с вашей переменной.

+0

Привет, доктор, я на самом деле сделал это изначально, но все же должен включить settings.h в свой файл error.cpp для доступа к функциям. Мой реальный вопрос: если есть какие-либо неблагоприятные последствия для включения settings.h в error.cpp. и если бы это было сделано, без использования и включения – user1649972

+0

Не должно быть никаких побочных эффектов, включая settings.h в error.cpp. И почему вы хотите сделать это без включения? – DrDonut

+0

Я не знаю, почему, но у меня было это в голове, что я должен только предоставить доступ, когда это абсолютно необходимо, и ограничить доступ, когда это возможно. В последнее время я много работаю с классами и наследованием, и думаю, что у меня просто скрестились провода, пытаясь ограничить доступ. Спасибо за ответ, я продолжу и уверенно включу include :) – user1649972

1

В файле .h (заголовок), определить:

extern int myvar; 

Затем использовать его везде в глобальном масштабе.

+0

Hi Quantum, мне действительно нужно использовать его внутри функции error.cpp. Если я не #include settings.h, я получаю сообщение о том, что мой int "не был объявлен в этой области". Можно ли включить settings.h или это проблема. – user1649972

+0

Почему бы не включить 'settings.h' там? Если ошибки зависят от настроек, то нет никакого способа обойти это. –

+0

Я не знаю, почему, но у меня было это в голове, что я должен только предоставить доступ, когда это абсолютно необходимо, и ограничить доступ, когда это возможно. В последнее время я много работаю с классами и наследованием, и думаю, что у меня просто скрестились провода, пытаясь ограничить доступ. Спасибо за ответ quantun – user1649972

Смежные вопросы