“我不明白为什么会有不了解 const 的人让这些变量加上 static。”这句话翻译不对。原文是:“I don’t see why anyone who didn’t care about const would make those variables static.”。
意思应该是如果去掉了const,我看不出这些变量还有是static的必要。
事实上static const和const局部变量在gcc中的处理是完全不同的。gcc会在栈里面为const局部变量分配空间(就和普通局部变量一样),并在使用前初始化,但是static const是一个放在rodata只读数据段中的变量,不占用栈空间也不需要初始化。