constexpr是在编译期就确定的吗

既然constexpr是编译期已经确定了,为什么sth(int n)函数带变量n依然可以正常编译运行呢? 因为n是变量,编译器也不知道n是多少,应该无法编译通过才对。

constexpr int sth(int n) {
  return 1+n;
}

int main() {
  int a = 10;
  int res = sth(a);
  printf("res=%d\n", res);
}
//输出:11
阅读 1.1k
1 个回答

我的理解:constexpr 只是限制为纯函数;效果和内联是一样的,所以编译器不需要知道参数是什么

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题