Escopo do pré-processador #define em C
O escopo de#define
é até o final do arquivo. Mas de onde isso começa. Basicamente, tentei o seguinte código.
#include<stdio.h>
#include<stdlib.h>
#define pi 3.14
void fun();
int main()
{
printf("%f \n",pi);
#define pi 3.141516
fun();
return 0;
}
void fun(){
printf("%f \n",pi);}
A saída do programa acima parece ser
3.140000
3.141416
Considerando o pré-processamento para main, o valor de pi deve ser 3,141516 e fora main 3,14. Isso está incorreto, mas por favor explique o porquê.