O que é #define em C?


Melhor resposta

#define é a instrução do pré-processador na linguagem C.

Todas as instruções prefixadas com # são pré-processador declarações.

1.

#define MAX\_STUDENTS 200

#define é usado para declara constantes de macro (de qualquer tipo), conforme mostrado acima. Se um valor for usado em vários lugares, no código, a manutenção do código se torna fácil. Quando o valor de MAX\_STUDENTS precisa ser alterado, ele precisa ser alterado apenas em uma linha de código, em vez de vários lugares.

A desvantagem dessa abordagem é o depurador, não reconhece esse valor.

int arr [MAX\_STUDENTS];

Também pode ser usado na compilação condicional, conforme mostrado abaixo

#define WINDOWS

#ifdef WINDOWS

..

.. code of Windows OS

..

#else

..

.. code of Linux OS

..

#endif

NOTA: #undef pode ser usado para cancelar

2.

#define SQUARE (x) (x * x)

funções macro, são como funções normais, exceto que o pré-processador substitui as chamadas de método, em vez de chamar a função durante o tempo de execução.

As vantagens são a sobrecarga de chamada de função evitada, portanto a execução é mais rápida

SQUARE (2 + 3)

A desvantagem é que a função macro não se comporta como funções normais. Por exemplo, considere a chamada de macro SQUARE (2 + 3) acima, que resulta no valor 11 incorreto, onde como a função normal retorna 25.

Recomenda-se usar a função macro (em vez da função normal), quando o tamanho tem uma ou duas linhas e não tem efeitos colaterais, como mostrado acima.

Resposta

#define é um C pré-processador diretiva usada para definir macros .

Vamos decompô-lo.

Uma diretiva de pré-processador é uma instrução de programa que é chamada antes da compilação do programa. Na verdade, qualquer linha seguida por # caractere é um pré-processador. Isso inclui a unidade include também. As diretivas do pré-processador são usadas para fornecer instruções gerais ou dados necessários que são usados dentro de um programa.

Uma macro é um bloco de código que recebeu um nome. Qualquer ocorrência desse nome é substituída cedido pelo valor da macro. Digamos, eu defini a macro chamada AMOUNT cujo valor é 200. Agora, toda vez que a palavra AMOUNT é usada no programa, ela é substituída pelo número 200 antes da compilação. Em contraste com as variáveis, onde os dados são armazenados dentro delas, as macros agem como nomes de alias.

A sintaxe da diretiva #define é a seguinte:

#define MACRONAME value

OU

#define MACRONAME (expression)

Uma macro pode receber um valor numérico e também um caractere (deve estar entre aspas). As macros podem ser usadas como qualquer outra variável constante.

Você também pode cancelar a definição de uma macro usando a diretiva #undef. Esta é a sintaxe:

#undef MACRONAME

//MACRONAME can no longer be used in the program

Espero que minha resposta tenha sido útil.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *