C语言文献中的modifier和qualifier 您所在的位置:网站首页 specifier语言学 C语言文献中的modifier和qualifier

C语言文献中的modifier和qualifier

2023-10-07 11:14| 来源: 网络整理| 查看: 265

C文献中的modifier和qualifier 引子

在读C语言英文文章时,谈到诸如unsigned、const、volatile等时,常会看到称其是modifier和qualifier,那么这两个“术语”意思是否一样呢?

浅析 一般语言上:

先看一般的语言(泛指人类语言文字,如英语): 在语言分析上正式地讲,这两个词是有区别的。是这样的顺序,Modifiers-Heads-Qualifiers,即head之前叫modifier、之后叫qualifier。参见http://www.grammatics.com/iel/notes/07grammar4.htm

但是实际应用时,多数情况下并不把两者作严格地区别。经常是混用,不去过多地加以区分。参见http://en.wikipedia.org/wiki/Grammatical_modifier

再回到程序语言上: 打开C99标准的PDF文档, type-qualifier: const restrict volatile (见附录A.2.2 Declarations) (另一种简洁说法:A qualifier is either of "const" or "volatile" (often referred to as a "cv-qualifier").) type-specifier: void char short int long float double signed unsigned _Bool _Complex struct-or-union-specifier ∗ enum-specifier typedef-name (见附录A.2.2 Declarations) 而C99的PDF中提到modifier词汇的是length modifier之类的说法,并没有上述意义的提法。 因此我猜测在一些C语言的文章中,某些作者可能从日常普通词汇字面上理解modifier这个单词,误把它代替qualifier的意思来使用了。 结论: 因此,准确地讲,C语言中,起限定和修饰作用的意思的专门术语应该是qualifier或specifier,参见上面提到C99的附录。 但是,日常阅读某些关于C的文章时不必过分地书呆子气,如果遇到modifier和qualifier混用的情况,在可以理解意思的情况下,若无必要则两者可以不作区分(领会精神:D),都看待成:起限定作用就可以了。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有