誰でもこのコードが1 3 0 0 0 -1で印刷され、1 2 3 0 0 0ではないことを私に説明してもらえますか?この定義はどのように働くのですか?このコードは何を印刷し、なぜですか?
#include<stdio.h>
#define SOMETHINGDEFINED(i) A[i%4]
int main(void) {
int i, A[6] = { 1 };
SOMETHINGDEFINED(1) = 2;
SOMETHINGDEFINED(5) = 3;
SOMETHINGDEFINED(4 + 2) = SOMETHINGDEFINED(1 + 3 + 1)--;
for (i = 0; i < 6; i++) {
printf("%d ", A[i]);
}
return 0;
}
4 + 2%4,1 + 3 + 1%4とは何ですか? – immibis