经常看到一些例子中的函数参数或其他的什么声明成const.我知道是静态类型变量,可是还是搞不明白什么时候要用,什么时候可以不用.例如,有个函数是这样声明的:
void LoadFile(const char* pszFileName).它是用来将一个图形文件读入内存的.如果我不用const会不会发生什么错误呢,比如pszFileName内存被覆盖,为什么呢?
void LoadFile(const char* pszFileName).它是用来将一个图形文件读入内存的.如果我不用const会不会发生什么错误呢,比如pszFileName内存被覆盖,为什么呢?
我个人认为上例可以不用,影响不大。
这样编译器会对上面的语句产生一个编译错误,仅此而已。把const变量改为非const不会对执行结果产生任何变化,甚至编译器产生的机器码也完全相同,区别是,原来编译器能够发现的错误,改为非const后就不能发现了。