use sizeof instead of constant
reuse macro