Я знаю, что, вероятно, отсутствует понятие области действия для макросов, но, пожалуйста, помогите мне понять следующий вывод - который, по-видимому, предполагает, что макросы являются локальными для функций:
#include<stdio.h>
#include<stdlib.h>
#define A 100
void fun();
int main()
{
fun();
printf("%d\n",A);
system("pause");
return 0;
}
void fun()
{
#undef A
}
Вывод программыравен 100, хотя, по моему мнению, это должна была быть ошибка компилятора.Пожалуйста, объясните, почему?