Pelo que entendi então, fazendo uma equivalência static
se comporta como const
de C, que aloca um endereço de memória, enquanto const
se comporta como #define
de C, que é resolvido em tempo de compilação.
Minha dúvida é, por exemplo, em C se eu fizer:
#define MY_CONST = (1. / 32.)
Todas as ocorrências de MY_CONST
no código serão substituídas por (1. / 32.)
, não pelo resultado (0.03125
).
Se em Rust eu fizer:
const MY_CONST: f32 = 1.0 / 32.0;
As ocorrências de MY_CONST
serão substituídas por 1.0 / 32.0
, como em C, ou pelo resultado 0.03125
?
Essa dúvida faz sentido porque se for pela operação (como em C), isso pode gerar um overhead em alguns casos.