c - 为什么在声明结构变量名时不能使用连字符?
问题描述
结构生日{ int day:6; }b天;
在声明b-day
为结构时,它显示以下错误:
error: expected ':', ',', ';', '}' or '__attribute__' before '-' token|
但是从变量名中删除连字符后它可以工作,为什么?
解决方案
连字符用作减法和否定运算符,因此它们不能用于变量名。(变量是用于结构还是其他类型无关紧要。)
如果你有:
int a = 1;
int b = 2;
int a-b = 3;
printf("%d\n", a-b);
a
那么我们对于是打印“-1”来表示减号b
还是打印“3”来表示变量会有歧义a-b
。
推荐阅读
- vhdl - VHDL - 带复位的推断锁存器 - FSM
- angular - 如何 *ngFor 循环通过 Angular 7/Ionic 4 中的两列?
- sql - 优化时间序列数据的 MIN / MAX 查询
- python - 导入 numpy c-extensions 失败
- python - 如何在不导入模块的情况下在 python 中创建矩阵?在不导入模块的情况下如何制作张量?
- asp.net-core - EF Core 急切加载为相关对象返回 null
- python - LSTM 价格预测图 - ValueError:x 和 y 的大小必须相同
- python - 使用 CustomJS 为行字形更新 CDSView 过滤器
- git - Terraform 用于存储获取变量的单一来源
- eclipse - 使用 Eclipse 在 SAP HANA Neo 中执行 XSJS 程序