protected: Foo x,y,;
我原本以为尾随的逗号会出错,但显然它不是?这是不确定的,或者会发生什么?可能是坏事,因为代码检查程序抱怨它.
解决方法@H_419_18@ 相关的语法产生见§9.2:member-declarator-List: member-declarator member-declarator-List,member-declarator
逗号只允许分隔声明符(名称). member-declarator本身可能不包含逗号.
编辑:这里是成员声明者…它不是自包含的,声明者的语法通常是一个蜘蛛网.
member-declarator: declarator virt-specifIEr-seq(opt) pure-specifIEr(opt) declarator brace-or-equal-initializer(opt) IDentifIEr(opt) attribute-specifIEr-seq(opt) : constant-Expression
不正确的语法不是未定义的行为;允许错误放置逗号的编译器有一个错误.拒绝那种东西是标准的要求.
注意,枚举定义和大括号初始化器中允许使用尾随逗号.我认为这两个案例都是由C 11添加的,以简化编写源代码生成器. (即使有这么简单的要求,预处理器也经常会遇到困难.)通常,简单的生成器可能会避免创建具有多个名称的声明,因为由于语法复杂,它可能是一堆蠕虫.另一方面,一个空的声明组成;允许,在成员函数定义之后是分号.
总结以上是内存溢出为你收集整理的c,尾随逗号如何不是错误,会发生什么? Foo x,y ,;全部内容,希望文章能够帮你解决c,尾随逗号如何不是错误,会发生什么? Foo x,y ,;所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)