Associatividade C99 para operadores - onde é especificad
No padrão C99, as expressões permitem precedência e associatividad
Precedence está documentada muito bem, uma vez que a ordem na qual os operadores aparecem no documento é de precedência reduzida, portanto, as chamadas de funções são apresentadas antes de operadores multiplicativos que, por sua vez, são apresentadas antes de operadores aditivo
No entanto, não consigo encontrar uma descrição definitiva da associatividade, seja ela esquerda ou direita. Isso é importante, já que35/5*2
seria14
para uma variante(35/5)*2
e3
para a outra variante35/(5*2)
.
Seção6.5 Expressions /3, footnote 74
Estado
A sintaxe especifica a precedência dos operadores na avaliação de uma expressão, que é a mesma da ordem das principais subcláusulas desta subcláusula, maior precedência primeiro.
Dentro de cada subcláusula principal, os operadores têm a mesma precedência. A associatividade esquerda ou direita é indicada em cada subcláusula pela sintaxe das expressões discutidas nel
No entanto, considerando o caso multiplicativo, por exemplo:
.5.5 Operadores multiplicativ
Sintax
multiplicative-expression:
cast-expression
multiplicative-expression * cast-expression
multiplicative-expression / cast-expression
multiplicative-expression % cast-expression
Restriçõe
Cada operando deve ter um tipo aritmético. Os operandos do%
operador @ deve ter um tipo inteir
Semântic
s conversões aritméticas comuns são executadas nos operando
O resultado do binário*
operador @ é o produto dos operando
O resultado do/
operator é o quociente da divisão do primeiro operando pelo segundo; o resultado do%
operator é o restante. Nas duas operações, se o valor do segundo operando for zero, o comportamento será indefinid
Quando números inteiros são divididos, o resultado da/
operator é o quociente algébrico com qualquer parte fracionária descartada. Se o quocientea/b
é representável, a expressão(a/b)*b + a%b
será igual aa
.
Não consigo ver nada que mencione a associatividade, nem parece haver nenhuma configuração padrão em outra parte do padrã
Estou perdendo alguma coisa aqui?