Область действия #define
находится до конца файла.Но откуда это началось.В основном я пробовал следующий код:
#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);}
Выход вышеупомянутой программы получается
3.140000
3.141416
С учетом предварительной обработки для main значение pi должно быть 3.141516, а вне main 3.14,Это неверно, но, пожалуйста, объясните, почему.