1

私のマクロはスクロールしないと画面にうまく収まらないので、読みやすくするために分割したいと思います。次のようになっている場合は正常に動作します。

#define longMacro(ptr, idx0, idx1, idx2, idx3, idx4, dim1, dim2, dim3, dim4) (*((ptr) + (idx0) * (dim1) * (dim2) * (dim3) * (dim4) + (idx1) * (dim2) * (dim3) * (dim4) + (idx2) * (dim3) * (dim4) + (idx3) * (dim4) + (idx4)))

しかし、私がこのようにそれを分割しようとすると:

#define longMacro(ptr, idx0, idx1, idx2, idx3, idx4, dim1, dim2, dim3, dim4) 
    (*((ptr) + (idx0) * (dim1) * (dim2) * (dim3) * (dim4) 
    + (idx1) * (dim2) * (dim3) * (dim4) + (idx2) * (dim3) * (dim4) 
    + (idx3) * (dim4) + (idx4)))

これらのエラーが発生します

エラー:「+」トークンの前に「
)」を期待エラー:「+」トークンの前に「 )」を期待エラー:
「+」トークンの前に「)」を期待エラー:「+」トークン
の前に「)」を期待

4

1 に答える 1

2

各行の終わりの前に「\」がないのだと思います

#define longMacro(ptr, idx0, idx1, idx2, idx3, idx4, dim1, dim2, dim3, dim4) \
    (*((ptr) + (idx0) * (dim1) * (dim2) * (dim3) * (dim4) \
    + (idx1) * (dim2) * (dim3) * (dim4) + (idx2) * (dim3) * (dim4) \
    + (idx3) * (dim4) + (idx4)))
于 2012-10-12T14:43:55.387 に答える