Um comentário pode precisar ir acima ou abaixo de um trecho de código, dependendo do tipo de comentário que é: se fornece uma explicação ultra-resumida do que o código faz, ele precisa preceder o código; se esclarecer detalhadamente um detalhe técnico sobre como o código funciona, será necessário segui-lo.
Felizmente, um comentário pode ir acima ou abaixo de um trecho de código, e ainda não deixa dúvidas sobre qual trecho de código pertence, fazendo uso adequado de linhas em branco. Obviamente, os programadores que não prestam atenção ao uso de linhas em branco não saberão do que estou falando; se você é um desses, pule esta resposta e siga em frente com sua vida. Mas os programadores que prestam atenção às linhas em branco sabem muito bem que as linhas em branco são usadas para dividir o código em entidades lógicas. Então, se você vir o seguinte:
[blank line]
/* comment */
{ code }
[blank line]
Você sabe que o comentário pertence ao código e indica o que o código faz. Visto que, se você vir o seguinte:
[blank line]
{ code }
/* comment */
[blank line]
Novamente, você sabe muito bem que o comentário pertence a esse código e é um esclarecimento sobre como o código faz o que faz.