#include
#include
#define TOUPPER(c) ('a'<=(c)&&(c)<='z'?(c)-'a'+'A':(c))
int main(){
char s[10];
int i;
strcpy(s, "abcd");
i = 0;
putchar(TOUPPER(s[++i]));
return 0;
}
你输出i会发现,它的值已经加到3了
宏替换:putchar(TOUPPER(s[++i]));
TOUPPER(s[++i]) 宏替换为:('a'<=(s[++i])&&(s[++i])<='z'?(s[++i])-'a'+'A':(s[++i]))