No, most of the time the compiler is smart, it will see it can inject the value right where you use it. (using const is key though)
compile this
#include <Wire.h>
void setup() {
for (byte i = 0; i < 5; i++) {
Wire.beginTransmission(0x53);
Wire.write(0xC0 + i); Wire.write(0x0D); Wire.write(0x00);
Wire.endTransmission(false);
}
}
void loop() {}
or this
#include <Wire.h>
const byte i2cadd = 0xC0;
void setup() {
for (byte i = 0; i < 5; i++) {
Wire.beginTransmission(0x53);
Wire.write(i2cadd + i); Wire.write(0x0D); Wire.write(0x00);
Wire.endTransmission(false);
}
}
void loop() {}
you should see the same SRAM and flash usage