返回介绍

另一个子类--常量

发布于 2025-02-24 22:44:39 字数 632 浏览 0 评论 0 收藏 0

谁会喜欢输入 pi 或者其他数学常量的值呢?我们从 Kernighan 和 Pike's hoc [K&P84]得到线索并且预定义一些常量给我们的计算器。下面的函数需要被调用在初始化识别器期间:

void initConst (void) {
  static const struct Var constants [] = {  /* like hoc */
    { &_Var, "PI", CONST, 3.14159265358979323846 },
    ...
    0 };
  const struct Var * vp;

  for (vp = constants; vp -> _.name; ++ vp)
    install(vp);
}

变量和常量几乎是一样的:都具有名称和值并且存活在符号表中;都返回他们的值在一个算数表达式的使用中;并且都不应当被删除,当我们删除一个算数表达式的时候。然而,我们不应当给常量赋值,所以我们需要同意一个新的标识符值 CONST ,识别器在 factor() 中接受就像 VAR 一样,但是不允许在 stmt() 的赋值的左边。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文