Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Qual diferença pratica entre #define e o modificador const?

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?

1 resposta
solução!

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.

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.