首页 > 解决方案 > 为什么在声明结构变量名时不能使用连字符?

问题描述

结构生日{ int day:6; }b天;

在声明b-day为结构时,它显示以下错误:

error: expected ':', ',', ';', '}' or '__attribute__' before '-' token|

但是从变量名中删除连字符后它可以工作,为什么?

标签: cstructure

解决方案


连字符用作减法和否定运算符,因此它们不能用于变量名。(变量是用于结构还是其他类型无关紧要。)

如果你有:

int a = 1;
int b = 2;
int a-b = 3;
printf("%d\n", a-b);

a那么我们对于是打印“-1”来表示减号b还是打印“3”来表示变量会有歧义a-b


推荐阅读