A variável global e estática de inicialização para 0 é sempre desnecessária?
O padrão C garante que variáveis globais e estáticas, se não forem inicializadas, sejam sempre0
.
Aqui está a minha pergunta: as variáveis globais e estáticas não inicializadas vão paraBSS
segmento no programa. Então os chamados0
deveria estarall-bit 0
.
Para variáveis integrais,all-bit 0
será avaliado como0
. As variáveis de ponto flutuante, se seguirIEEE 754, é também0.0
. Mas para ponteiros, ponteiros nulos não é necessariamente para serall-bit 0
, assim como a inicialização de um ponteiro global como este:
int* p = NULL;
faça alguma diferença para apenas:
int *p;