- 论坛徽章:
- 0
|
本帖最后由 calorique 于 2011-06-27 11:03 编辑
如果是照楼主的语句,会造成重复定义的错.
linux-162:/home/lazy/.src # cat t7.c
#include <stdio.h>
int main(void){
char a = '3', a + 11;
printf("a=%d\n", a);
return 0;
}
linux-162:/home/lazy/.src # gcc t7.c -o t7
t7.c: In function `main':
t7.c:4: error: redeclaration of `a'
t7.c:4: error: `a' previously declared here
t7.c:4: error: parse error before '+' token
如果楼主只想看看逗号表达式的值和计算顺序
linux-162:/home/lazy/.src # cat t8.c
#include <stdio.h>
int main(void){
char a;
char b = (a = '3', a + 11);
printf("b=%d\n", b);
printf("'3'=%d\n", '3');
return 0;
}
linux-162:/home/lazy/.src # gcc t8.c -o t8
linux-162:/home/lazy/.src # ./t8
b=62
'3'=51
gcc是从左到右计算并取最后一个表达式的值作为整个表达式的值. |
|