c - 限定符、修饰符、说明符

标签 c standards

所以我在维基百科的一篇文章(粗略翻译)中遇到了以下定义:

Modifier (programming) - element of source code being a phrase of given programming language construct, which results in changed behavior of given construct.

然后,文章提到了关于 ANSI C 标准的修饰符:

type modifiers (sign - signed unsigned, constness const, volatility volatile)

然后它还提到了关于 Turbo C、Borland、Perl 等语言的术语,但鉴于 ANSI/ISO 9899 中没有提到 modifier| , 这已经使文章的有效性受到质疑。

this question 的答案得出相似的结论。

但是,在查看 google 上的一些热门搜索时,您会看到教程部分到处都提到了术语修饰符,或者甚至示例面试问题。

所以问题是:在这种情况下使用术语 modifier 是否合理,或者在提到时需要更正?

最佳答案

Can the usage of the term modifier in this context be justified or rather requires correction when mentioned?

C 规范不使用具有特定定义的“修饰符”。它确实讨论了事物如何可修改等,并详细说明了术语可修改的左值,但与 OP 对 signedunsigned 的关注无关, const, volatile.

在 C 中,constvolatilerestrict类型限定符

signedunsigned 是两种标准整数类型

因此权威引用文献对“修饰词的用法”只字不提。


由于缺乏标准引用答案,在使用术语修饰符 时,证明其上下文的合理性以避免狡辩更正是有意义的。

与跨越多种语言的许多术语一样,读者需要理解这些术语在广泛应用时使用起来并不严格。每种计算机语言都有并且需要非常精确的术语。说 C 语言时,最好避免使用该术语,除非在与其他语言的上下文中需要通用性。

关于c - 限定符、修饰符、说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40538311/

相关文章:

数据库列和外键规范化

c++ - 标准是否保证 std::vector 占用的总内存按比例缩放为 C+N*sizeof(T)?

c - 如何使用 ANSI 转义序列设置棕色?

shell - 为什么 shell case 语句中的第一个模式不能是多个模式?

c - 将地址或指针传递给 C 函数

没有互斥量的条件等待

c++ - 函数风格的异常重新抛出。标准/编译器中的错误?

c++ - 将排序范围插入关联容器的复杂性

c - 流程管理数据结构和流程控制

c - 二维char的fread fwrite问题