Макросы Arduino не работают, как и ожидалось, с классамиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Макросы Arduino не работают, как и ожидалось, с классами

Сообщение Anonymous »

Я хочу определить макрос в классе.
Я хочу определить его сначала в своем основном, но используйте #ifndef, чтобы создать его, если пользователь решит не делать.
По какой -то причине Казалось бы, что класс связан до основного, поэтому мой #define in main не используется.
tia < /p>
my main ino < /p>
#define TEST_MACRO 4
#include "test.h"

test testclass;
void setup() {
Serial.begin(9600);

testclass.showValue();
}

void loop() {

}
< /code>
test.h
#ifndef TEST_MACRO
#define TEST_MACRO 5
#endif
#include "Arduino.h"

class test
{
public:
test();
void showValue();
private:
uint16_t testval = TEST_MACRO;
};
< /code>
test.cpp
#include "test.h"

test::test()
{
;
}

void test::showValue()
{
Serial.println(testval);
}
< /code>
ожидаемый результат "4"
result "5" < /p>
Однако, если я сделаю это с файлом test.h и нет. класс, все работает как ожидалось.

Подробнее здесь: https://stackoverflow.com/questions/794 ... th-classes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»