你的 cpp 里有包含自己写的那个头文件吗?
// example.h #ifndef EXAMPLE_H #define EXAMPLE_H // 变量声明 extern int a; // 只声明 a,不声明 b // 函数声明 void p(); // 声明函数 #endif
// main.cpp #include <iostream> #include "example.h" // 该用到的东西这里面应该声明好了, int main() { cout << a << endl; // 因此用的时候可以直接用,这才有头文件的意义 p(); return 0; }
// example.cpp #include <iostream> #include "example.h" int a = 5; // 其实 a 的定义在这。用头文件的人不用管具体实现的位置。 static int b; // 这还有这个文件里自己要用到的变量,自己声明自己用,外边的人甚至看不见。 void p() { b = 3; cout << b << endl; }