【发布时间】:2016-03-22 14:29:16
【问题描述】:
#include <stdio.h>
int foo() { return 0; }
int a = foo();
int main() {
return 0;
}
上面的代码不能编译,因为
来自第 3.5.7 节 C 标准的初始化:
具有静态存储持续时间的对象的初始化程序或具有聚合或联合类型的对象的初始化程序列表中的所有表达式都应为常量表达式。
#include <iostream>
int foo() { return 0; }
int a = foo();
int main() {
return 0;
}
但是不知道为什么不用constexpr就可以用C++编译了
我想提一下,我的主要问题是为什么不用constexpr就可以在C++中编译它
【问题讨论】:
-
所以基本上你在问,为什么你的冷却器可以冷却,为什么你的笔记本不能,对吧?
-
尽管有相似之处,但它们是两种完全不同的语言,请始终牢记这一点!
-
@Olaf:你可能的意思是,为什么你可以do it in C++ 而不是C。
-
@callyalater 谢谢,这就是我问这个问题的原因。看来我的表达不够好。
-
@Olaf:所以,当你写“那个”时,在回应我的评论时,你指的是你的 Python 示例,而不是我链接的 C++ 示例?这至少是一个积极误导的评论。边缘不真实。
标签: c++ c global-variables