Quando declaro um "#define BOOT_OK "CALLREADY" isso vai para a memoria de programa? e quando declaro uma uma variável com modificador const ele vai para a memoria RAM?
No caso dela alocar a memoria RAM existe a possibilidade desalocar ele?
Quando declaro um "#define BOOT_OK "CALLREADY" isso vai para a memoria de programa? e quando declaro uma uma variável com modificador const ele vai para a memoria RAM?
No caso dela alocar a memoria RAM existe a possibilidade desalocar ele?
Oi Pedro, um #define cria um macro e será substituído em todos os lugares que aparecer em tempo de compilação. Por exemplo, se fizer
#define TRUE 1
#define FALSE 0
int main() {
if (condicao == TRUE)
printf("isso é verdadeiro\n");
else if (condicao == FALSE)
printf("isso é false\n");
return 0;
}
ele iria fazer a seguinte substituição para mim
int main() {
if (condicao == 1) {
printf("isso é verdadeiro\n");
else if (condicao == 0)
printf("isso é false\n");
return 0;
Costumamos usar defines para criar macros como essa que mostrei no exemplo ou algumas funções úteis como uma que retorna o minimo entre dois valores ou o máximo.
Já const
são variáveis, porém ao colocarmos esse modificador antes do tipo dela avisamos ao compilador que o valor dela não pode ser alterado depois que ele for definido.
Quanto ao uso de memória, ambos não consumirão memória RAM.