其他语言(Java、Python、JS 等):
在实践层面,几乎所有语言中,写出一个变量名就意味着“我要用它”,系统就会为它准备存储空间 —— 这就是“定义”。
“纯声明”(如 C 的 extern)是一种为了支持多文件链接而存在的特殊机制,在单文件脚本语言(Python/JS)或托管语言(Java)中基本不需要。
C / C++:严格区分“声明” vs “定义”
int x; → 定义(tentative definition,分配内存,初始化为0)int x = 3; → 定义(分配内存 + 初始化)extern int x; → 声明(不分配内存)🔸 关键:C/C++ 需要链接器(linker),所以必须明确“哪里分配内存”。