gpt4 book ai didi

c - 为什么使用常量被认为比使用文字更好的编程风格?

转载 作者:太空狗 更新时间:2023-10-29 15:11:23 26 4
gpt4 key购买 nike

为什么使用常量被认为比使用文字更好的编程风格?前者相对于后者的确切优势是什么?

最佳答案

一个原因是协助维护。假设您陷入了黑暗时代,您的图形处理程序只能在 1.4M 软盘上运行。

您收到处理新式 2.8M 软盘的请求,您心想“哈,我只需要搜索代码以查找 1440 并将其替换为 2880。很简单,嗯?”。

不幸的是,作为一个图形程序,1440 也是一英寸的缇数,因此您发现在进行大量的全局搜索和替换之后,您不仅可以处理更大的磁盘,而且所有图像的大小都是错误的屏幕上。噢!

现在你必须回去找出那些1440 中的哪些字符串用于磁盘大小,而字符串用于图像大小。

如果您刚刚开发了这样的代码:

#define TWIPS_PER_INCH 1440
#define DISK_SZ 1440

您可以通过仅在一个地方更改该常量而不影响具有相同值的所有其他常量来使更改变得容易得多。

简短的回答是,命名常量让您的生活更轻松。这确实应该是使用它们的充分理由。

一些极端分子会坚持认为,您的程序中唯一应该拥有的硬编码常量是 -1、0 和 1 - 有些人会走得更远,但我们可以打折扣 :-) 我不完全同意点,但我确实认为尽可能避免使用它们是个好主意。

我觉得有趣的一件事是人们做这样的事情:

#define SEVENTY_TWO 72

我不确定他们认为他们从中获得了什么,但我实际上得到了一次我在代码审查中对硬编码 72 发表的评论的回应。 (我现在可以笑了,但在第二次审查 session 上我不太高兴)。


另一个原因是为了让代码更具可读性。除非你有数学背景,否则当你看到像 1.414 这样的常量时,你会不知所措。在你的代码中。但是,符号 SQR_ROOT_OF_2可能更容易理解。它与大多数其他常量相同,例如:

SECS_PER_DAY      86400
CUST_ADDR_LINES 7
INVALID_ID -1
DAYS_PER_CENTURY 36524
PASS_LEVEL 63
MIN_REPUTATION 10000
MAX_LOAN_AMT 200000

您是希望代码中的数字散布在右侧,还是更愿意阅读能更好地呈现意图的代码?

关于c - 为什么使用常量被认为比使用文字更好的编程风格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4351022/

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