这个总感觉是 vscode 的 cmake 没写对,你的代码我的电脑上也可以 你试试 code blocks 或者 visual studio
因为你没有定义变量,所以无法输出
现在解决了,换了个ide就好了,现在用的vs没啥问题,可能是vscode有什么不可告人的秘密吧
【以下回答由 GPT 生成】
解决方案:
根据你提供的问题描述和示例代码,在分析代码之前,先解释一下extern关键字的作用和用法。
在C语言中,extern关键字用于声明一个已经在其他地方定义的全局变量或者函数。它的作用是告诉编译器这个变量或函数是在其他文件中定义的,以便在编译阶段能够正确地引用它。
在你提供的示例代码中,使用了extern关键字来声明一个全局变量x,但是在代码中并没有对这个变量进行定义。因此,编译器在编译阶段会报错,因为它无法找到变量x的定义。
要解决这个问题,你需要在代码中提供x的定义。下面是两种解决方案:
解决方案一: 将变量x定义在同一个源文件中
在示例代码中,你可以在main函数之前添加如下代码来定义全局变量x:
int x = 10; // 定义全局变量x并初始化为10
这样,在使用变量x的地方就不再需要extern关键字了。
解决方案二: 将变量x定义在其他源文件中
如果你希望将变量x定义在另一个源文件中,那么你可以创建一个名为"extern_example.c"的源文件,并在该文件中定义变量x:
int x = 10; // 在extern_example.c文件中定义全局变量x并初始化为10
然后,在示例代码中使用extern关键字声明变量x:
extern int x; // 在主源文件中声明外部变量x
int main() {
printf("%d", x); // 输出全局变量x的值
return 0;
}
编译时,将"extern_example.c"文件和主源文件"main.c"一起编译,并链接生成可执行文件。这样就能正常运行代码了。
总结:
问题的原因是使用extern关键字来声明变量x,但是没有提供对变量x的定义。解决这个问题的方法是在代码中提供变量x的定义,可以是同一个源文件中,也可以是其他源文件中,但是在进行编译和链接时需要保证能够找到变量x的定义。
【相关推荐】