Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
232 views
in Technique[技术] by (71.8m points)

c - how to make "i+=x" works as "i++"?

The following code

int i=0;
while(i<10) {
   printf("%d
", i++);
}

is equivalent to

int i=0;
while(i<10) {
   printf("%d
", i); i++;
}

But the following code

int i=0;
while(i<10) {
   printf("%d
", i+=2);
}

is equivalent to

int i=0;
while(i<10) {
   i+=2; printf("%d
", i);
}

How to make it equivalent to

int i=0;
while(i<10) {
   printf("%d
", i); i+=2;
}

the same as i++

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can write a macro to do this too. Like this:

#define POSTINC(var, val) ((var) += (val), (var) - (val))

printf("%d
", POSTINC(i,2));

But better use either for or just increase the value in the next statement.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...