> For the complete documentation index, see [llms.txt](https://mentebinaria.gitbook.io/manual-da-linguagem-gnu-c/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mentebinaria.gitbook.io/manual-da-linguagem-gnu-c/10.-ordem-de-execucao/pontos-de-sequencia.md).

# Pontos de Sequência

Existem alguns pontos no código onde C faz garantias limitadas sobre a ordem das operações. Esses pontos são chamados de *pontos de sequência*. Aqui estão os casos em que eles ocorrem:

* **No final de uma&#x20;*****expressão completa***: ou seja, uma expressão que não faz parte de uma expressão maior. Todos os efeitos colaterais gerados por essa expressão são realizados antes que a execução passe para o código subsequente.
* **No final do primeiro operando de certos operadores**: `,`, `&&`, `||` e `?:`. Todos os efeitos colaterais especificados por esse operando são realizados antes de qualquer execução do próximo operando.

  \
  As vírgulas que separam argumentos em uma chamada de função **não são operadores vírgula** e não criam pontos de sequência. A regra para argumentos de função e a regra para operandos são diferentes (veja [*Ordenação de Operandos*](/manual-da-linguagem-gnu-c/10.-ordem-de-execucao/ordenacao-de-operandos.md)).
* **Logo antes de chamar uma função**: todos os efeitos colaterais gerados pelas expressões dos argumentos são realizados antes de chamar a função.

  Se a função a ser chamada não for constante — isto é, se for computada por uma expressão — todos os efeitos colaterais nessa expressão são realizados antes de chamar a função.

A ordenação imposta por um ponto de sequência se aplica localmente a um intervalo limitado de código, conforme indicado em cada caso acima. Por exemplo, a ordenação imposta pelo operador vírgula não se aplica ao código fora dos operandos desse operador. Assim, neste código:

```c
(x = 5, foo (x)) + x * x
```

o ponto de sequência do operador vírgula ordena `x = 5` antes de `foo (x)`, mas `x * x` pode ser calculado antes ou depois deles.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://mentebinaria.gitbook.io/manual-da-linguagem-gnu-c/10.-ordem-de-execucao/pontos-de-sequencia.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
