相关疑难解决方法(0)

const在C/C++中提供了哪些优化?(如果有的话)

我知道在可能的情况下,在通过引用或指针传递参数时,应尽可能使用const关键字.如果我指定参数是常量,编译器可以做的任何优化吗?

可能有几种情况:

功能参数:

常量参考:

void foo(const SomeClass& obj)
Run Code Online (Sandbox Code Playgroud)

Constant SomeClass对象:

void foo(const SomeClass* pObj)
Run Code Online (Sandbox Code Playgroud)

并且指向SomeClass的常量指针:

void foo(SomeClass* const pObj)
Run Code Online (Sandbox Code Playgroud)

变量声明:

const int i = 1234
Run Code Online (Sandbox Code Playgroud)

函数声明:

const char* foo()
Run Code Online (Sandbox Code Playgroud)

每个提供什么样的编译器优化(如果有的话)?

c c++ const compiler-optimization

58
推荐指数
4
解决办法
2万
查看次数

更改const指针的值

我有以下代码:

void TestFunc(const void * const Var1, const float Var2)
{
  *(float*)Var1 = Var2;
}

看起来我正在改变const指针所指向的const对象的值(感谢sharptooth),这是不允许的.事实是,我试过的编译器都没有发出警告.这怎么可能?

c pointers const

4
推荐指数
1
解决办法
4123
查看次数

标签 统计

c ×2

const ×2

c++ ×1

compiler-optimization ×1

pointers ×1