#include <stdio.h>
#define Alphabet 26
struct Data
{
int iNum;
};
int main()
{
#if 0
int iNum = 0;
while(1)
{
iNum = (iNum++ % Alphabet);
printf("%d\n",iNum);
}
#else
Data data = {0};
while(1)
{
data.iNum = (data.iNum++ % Alphabet);
printf("%d\n",data.iNum);
}
#endif
return 0;
}
In #if branch,print 1-26;but in #else branch,print 1,2,3,....
This is probably because add and lea assembly instructions,but why use different instructions? I'm not very clear about it.
So,if we must prevent coding in this style? like iNum = (iNum++ % Alphabet).