C · Avançado · Português · Técnico
ponto de sequência
Ponto da execução, como o fim de uma expressão completa ou os operadores &&, || e ?:, onde os efeitos colaterais anteriores já terminaram.
Onde usar
Expressões como i = i++ + 1 ou a[i] = i++ modificam e leem i sem ordem definida e são comportamento indefinido. O padrão moderno fala em sequenciado antes, mas o termo ponto de sequência segue em uso.
Em código
int i = 1;
int a = i++ + i++; // UB: i alterado 2x
int j = 1;
int b = (j++, j); // ok: vírgula, b = 2Exemplos
Esse i++ duas vezes sem ponto de sequência entre eles é comportamento indefinido.
O operador && cria um ponto de sequência, então a ordem é garantida.
Cuidado
Confiar na ordem de avaliação dos argumentos de uma função: ela não é especificada, então f(i++, i++) não é confiável.
Sinônimos
sequence point