C语言允许初始化列表中出现多余的逗号,例如:

int days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, };

为什么这种特性是有用的?

#include <stdio.h>int main(int argc,char** argv){enum qs{Va = 5,Vb,Vc,} s;printf("a=%d,b=%d,c=%d",Va,Vb,Vc);return 0;
}

像enum枚举中的条目有可能是根据其它资源来的,而程序员会制作代码生成工具来生成它,所以就允许enum中的多余逗号。像int i = 9,j = 0;这种用法完全可以拆成int i=9;int j=0;因此不会增加代码生成器的负担,所以不支持int i=9,j=0,;

像这种代码,如果用代码生成器去读资源然后写进去,那么每生成一行都需要在末尾加一个逗号来分隔。C允许最后一行有多余的逗号,那就可以不用单独去处理最后一行了,减轻了代码生成器的制作负担,同时因为不用自行删除最后一个逗号,代码生成器的编写也就更不容易出错了。

C语言允许初始化列表中末尾出现多余的逗号相关推荐

  1. C++经典问题:如果对象A中有对象成员B,对象B没有默认构造函数,那么对象A必须在初始化列表中初始化对象B?

    对象成员特点总结: (1)实例化对象A时,如果对象A有对象成员B,那么先执行对象B的构造函数,再执行A的构造函数. (2)如果对象A中有对象成员B,那么销毁对象A时,先执行对象A的析构函数,再执行B的 ...

  2. C++中类成员变量在初始化列表中的初始化顺序

    引子:我们知道,C++中类成员变量的初始化顺序与其在类中的声明顺序是有关的. 先看代码: 1 class TestClass1 2 { 3 public: 4 TestClass1() { 5 cou ...

  3. 【c++】构造函数初始化列表中成员初始化的次序性

    上代码 #include <iostream> using namespace std;class A {public:A(int v): j(v + 2), i(j) {}void pr ...

  4. C++成员变量初始化列表中初始化顺序

    1.C++使用初始化列表初始化时,成员变量的初始化顺序:只与定义变量的顺序有关. #include <iostream> using namespace std; class A{ pri ...

  5. 删除所有奇数顺序表c语言,如何删除列表中的所有奇数序数项?

    您的代码失败了,因为您试图修改正在迭代的列表,而不考虑副作用.你知道吗x = ['apple','fruit','orange','fruit','lemon','fruit'] for i in r ...

  6. 类的初始化列表_【Flutter 111】Flutter手把手教程Dart语言——类、类的的成员变量和方法、类的构造函数...

    类 Dart是一种面向对象的语言,所有对象都是一个类的实例,而所有的类都继承自Object类.每个除了Object类之外的类都只有一个超类,一个类的代码可以在其它多个类继承中重复使用. 类的实例变量 ...

  7. C++中初始化列表的使用

    文章目录 1 C++中初始化列表的使用 1.1 类成员的初始化 1 C++中初始化列表的使用 1.1 类成员的初始化 C++中提供了初始化列表对成员变量进行初始化. 语法规则: 注意事项: 成员的初始 ...

  8. 28.构造函数中,成员变量一定要通过初始化列表来初始化的?

    首先要明确:如果对象成员是const或者引用的话,必须将其初始化! 构造函数中,成员变量一定要通过初始化列表来初始化的的几种情况! 1)对象成员是const或者引用 #include <iost ...

  9. c++构造函数成员初始化中赋值和初始化列表两种方式的区别

    先总结下: 由于类成员初始化总在构造函数执行之前 1)从必要性: a. 成员是类或结构,且构造函数带参数:成员初始化时无法调用缺省(无参)构造函数 b. 成员是常量或引用:成员无法赋值,只能被初始化 ...

最新文章

  1. You must restart adb and Eclipse问题的解决
  2. 产业|MIR睿工业:2018年机器人市场分析报告
  3. crash工具解析_Linux 后台开发常用调试工具
  4. Sql:成功解决将sql输出的datetime时间格式转为常规格式
  5. Linux 下使用 Sar 简介
  6. 南京工程学院计算机组成原理第二版答案,南大__计算机组成原理第二次作业
  7. windows常用命令集锦
  8. MySQL group-by-modifiers
  9. 表单流程中获取当前执行人填写的审批意见
  10. 网页中引用两个css冲突怎么办
  11. Windows中安装Electron说明
  12. 简述div标签和span标签的不同_div与span的区别是什么?
  13. Mac M1安装配置OpenCV教程
  14. 如何让Low Poly好看
  15. 【数据挖掘】数据挖掘简介及十大经典算法
  16. 陕西西安职高计算机学校有哪些,2019西安中职学校名单(含公办与民办名单)...
  17. Matlab开发Web App服务器
  18. 用python画花球_只靠一把小小剪刀!她把这些花养成了花球!
  19. 安装ale_python_interface报错
  20. 1267 'Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_gener

热门文章

  1. 短文改错高考真题500题分析专栏初衷
  2. 互联网进入中国的先驱是谁?
  3. 使用Aviationstack实时航班跟踪API进行航班跟踪
  4. 05【投资】成为富人的三个秘密
  5. 关联规则可视化python语言_关联规则可视化 - 猪猪daxia的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. java sql 引号_java拼接sql语句里的单双引号
  7. 飞腾CPU体系结构(十四)
  8. 机器人——数据中心的新“网管”
  9. html设置div滚动条实现超简单
  10. java web应用程序设计填空题_Java Web程序设计题库答案