我在C语言中一直与const混淆。我想如果没有const概念,世界上存在的所有程序也可以顺利运行。所以任何人都可以帮助我并给我一些解释。
答案 0 :(得分:2)
是的,如果您删除了const
,那么大多数 1 C代码将继续像今天一样工作。
然而,const
确实存在以拯救程序员。函数参数上的const
修饰符表示:"此函数承诺不会修改此指向的对象。"因此,如果您忘记并尝试修改对象,编译器将阻止您。
1 - 我说"大多数"因为const
也可以具有运行时效果。标记为const
的静态分配对象通常将放置在程序映像的只读部分中,并且在加载程序时,此数据将标记为只读。因此,如果您要抛弃const
并尝试写入此对象,您的程序将会出现段错误。这里的崩溃是可取的。因为它可以防止程序运行时对其数据进行无效假设。
答案 1 :(得分:1)
不,根本不是多余的。限定符const
通常应用于任何变量的声明,以指定在程序执行期间不会更改其值(这取决于存储const变量的位置,我们可以通过使用指针来更改const变量的值) 。如果您曾使用Java编程,则类似于静态变量。
您可以在此处详细了解const
:http://publications.gbdirect.co.uk/c_book/chapter8/const_and_volatile.html
答案 2 :(得分:0)
const将使汇编代码成为绝对数字值。它不是寄存器或内存值,当然也不能通过代码修改。它可以实现快速编程操作,因为它不会从存储器或寄存器加载值。
然而,大多数优化编码已经在汇编中实现,当它意识到值没有改变时。
约翰