Следующий код печатает один и тот же адрес для a
и b
с использованием GCC (не протестирован с другими компиляторами):
#include <stdio.h>
void show() {
{
static char a[0];
printf("%p\n", a);
}
{
static char b[0];
printf("%p\n", b);
}
}
int main() {
show();
}
Мой вопрос в том, что C-стандарт позволяет нескольким переменным иметь один и тот же адрес, или это просто расширение GCC?