gpt4 book ai didi

c++ - 为什么 "static"关键字在 C 和 C++ 中有这么多含义?

转载 作者:IT老高 更新时间:2023-10-28 12:48:26 25 4
gpt4 key购买 nike

我们知道,关键字staticmultiple meanings在 C. C99 中增加了合法书写的可能性

void foo (int arr[static 50])
{
// ...
}

这增加了困惑,C++ 有静态成员变量和函数。

如果所有用途都可以以某种方式连接起来,这将不会那么麻烦,但我发现对于某些情况很难找到该链接。特别是为什么应该使用 static 关键字来修改可见性(链接),或者它与数组的最小元素数量有什么关系。

那么,static 关键字的滥用是否有历史原因,或者是否有一个 secret 链接将其所有用途联系起来?

最佳答案

向语言添加新关键字会破坏向后兼容性。所以 static 被使用在它的使用可能意味着什么的地方( int arr[static 50] vs int arr[auto 50] int arr[extern 50] ) 并且不能根据其在以前版本中的使用在语法上出现在该位置。

虽然在这种情况下,在该位置添加一个 not_less_than 上下文相关关键字不会破坏以前的代码,但它会添加另一个关键字(因此,具有关键字意识但不具备语法意识的简单文本编辑器不会知道是否是关键字),并打破 C 中“关键字不是上下文敏感”的简化。

关于c++ - 为什么 "static"关键字在 C 和 C++ 中有这么多含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4615192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com