内存有限的开发

时间:2016-07-18 11:51:29

标签: c++ memory atmega atmel

我目前正在研究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:使用const静态值:

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_tuint16_t代替uint32_t

1 个答案:

答案 0 :(得分:0)

案例1:使用处理器宏:如果内存是主要关注我建议去 #define 枚举 因为与#define或enum相比, const 使用额外的内存。