【发布时间】:2020-08-29 15:40:05
【问题描述】:
我有这行代码:
#define ALPHABET_SIZE 'z' - 'a' + 1
当我将鼠标悬停在代码中任何位置的 ALPHABET_SIZE 上时,它告诉我它扩展为 'z' - 'a' + 1。
所以我想知道每次我在代码中使用 ALPHABET_SIZE 时是否必须重新计算这个表达式?如果是这样,我该如何防止重新计算?
【问题讨论】:
-
可行,只是好奇。
-
我希望编译器会在编译时计算它,并且您的代码中只有 26 秒,除非您故意在关闭优化的情况下进行编译。
-
哦,你是说优化会自动处理它?
-
但要小心
'z'-'a' +1。使用('z'-'a'+1),否则4*ALPHABET_SIZE之类的东西会给你带来意想不到的结果
标签: c preprocessor compiler-directives