Разработка с ограниченной памятью

Сейчас я работаю над проектом Atmel AVR и начинаю удивляться, какой из этих двух методов использует меньше памяти. Я работаю 8-битный Atmel Atmega328. У меня есть значение, которое мне нужно передать нескольким внешним функциям (вне класса).

Случай 1: использовать макрос препроцессора:

#define MY_VALUE 0x10

class MyClass
{
public:
MyClass ( );
void myMethod ( );
void myMethod2 ( );
};

// Constructor

void MyClass::myMethod ( )
{
externalFunction ( MY_VALUE );
}

void MyClass::myMethod2 ( )
{
externalFunction2 ( MY_VALUE );
}

Случай 2: Используйте постоянное статическое значение:

class MyClass
{
public:
const static uint8_t MY_VALUE = 0x10;

MyClass ( );
void myMethod ( );
void myMethod2 ( );
};

// Constructor

void MyClass::myMethod ( )
{
externalFunction ( MyClass::MY_VALUE );
}

void MyClass::myMethod2 ( )
{
externalFunction2 ( MyClass::MY_VALUE );
}

Или существуют лучшие методы для восстановления памяти.

Вопрос 2: То же, что закончился, но вместо uint8_t мы используем uint16_t или же uint32_t?

0

Решение

Случай 1: использовать макрос процессора: если память является основной проблемой, я предлагаю пойти на #define или же перечисление
так как Const использует дополнительную память по сравнению с #define или enum.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector