在Sublime Text运行C语言代码出现编译错误,请求排查
C代码编译报错的修复方案
你遇到的编译错误,根源是编译器默认遵循C89标准——在C89规则里,函数内的变量声明必须全部放在代码块的最开头,不能和执行语句(比如赋值、打印)混在一起。
你的代码里,int a、float b、double c三个变量声明后,紧接着写了float sum;,然后立刻是sum = a + b + c;这个赋值操作。这种在执行语句前插变量声明的写法,C89是不允许的,所以编译器会报错说sum未声明,以及变量声明位置不对。
两种解决办法:
方法一:调整变量声明位置(兼容所有C标准)
把float sum;移到其他变量声明的后面,统一放在main函数开头:
#include <stdio.h> int main() { int a = 3; float b = 4.5; double c = 5.25; float sum; // 所有变量声明放在代码块最开头 sum = a + b + c; printf("The sum of a, b, and c is %f.", sum); return 0; }
方法二:启用C99及以上标准(支持任意位置声明变量)
如果不想调整代码,可以修改Sublime Text的C语言编译配置,给编译器添加-std=c99或更高版本的参数。比如把编译命令改成:
gcc -std=c99 "$file" -o "$file_base_name"
这样编译器就会按照C99标准编译,允许在代码中间声明变量。
内容的提问来源于stack exchange,提问作者omar reyes
相关产品推荐
相关产品推荐

