关于vs2015不支持c99标准的问题
今天,看到小甲鱼所写的代码是c99里面的动态定义数组,代码如下:#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, i;
printf("请输入你要输入的字符的个数: ");
scanf("%d",&n);
char a;
printf("请开始输入字符: ");
getchar();
for (i = 0; i < n; i++)
{
scanf("%c",&a);
}
a = '\0';
printf("你输入的字符串是:%s\n",a);
system("pause");
return 0;
}
结果,用vs2015出现这个情况,想问一下,有没有人知道如何修改vs的编译器设置啊,本人已经网上找了半天,结果都没有什么结果。。。{:10_266:} 作为微软的官方编译器,居然就这样啊,让我好失望啊{:10_266:} 编译器又不知道n是不是常量,当然会报错 没错,vs就是不支持C99
TCY 发表于 2018-11-14 21:14
编译器又不知道n是不是常量,当然会报错
可以是变量,可以定义动态数组,前提是编译器支持C99
E:\tmp>cat main.c
#include <stdio.h>
int main(void)
{
int size;
printf("Please enter a number: ");
scanf("%d", &size);
int data;
for(int i = 0; i < size; ++i)
data = i + 100;
for(int i = 0; i < size; ++i)
printf("%d ", data);
printf("\n");
return 0;
}
E:\tmp>gcc -Wall -g -o main main.c
E:\tmp>ls
main.cmain.exe
E:\tmp>main.exe
Please enter a number: 10
100 101 102 103 104 105 106 107 108 109
E:\tmp> TCY 发表于 2018-11-14 21:14
编译器又不知道n是不是常量,当然会报错
但是在c99的标准中,c99是可以支持动态数组的 人造人 发表于 2018-11-14 21:23
没错,vs就是不支持C99
所以说,不知道vs2015有什么好,c99都不支持,定义动态数组也不行,一下子感觉代码灵活性少了好多啊 A小小鸟 发表于 2018-11-15 13:24
所以说,不知道vs2015有什么好,c99都不支持,定义动态数组也不行,一下子感觉代码灵活性少了好多啊
因为C语言标准委员会不是微软主导,html标准制订也是苹果、adobe主导,大公司是有脾气的! A小小鸟 发表于 2018-11-15 13:24
所以说,不知道vs2015有什么好,c99都不支持,定义动态数组也不行,一下子感觉代码灵活性少了好多啊
程序员就是小綿羊而已,如果公司让你用VS,你就得用VS,哪那么多事!想改变这一切,就得成为CEO,迎取白富美,走向人生巅峰! A小小鸟 发表于 2018-11-15 13:24
所以说,不知道vs2015有什么好,c99都不支持,定义动态数组也不行,一下子感觉代码灵活性少了好多啊
英式英语才是正统,可M国强大,所以学KK音标的更多,我们不是要报怨为什么这么多口音,程序员要懂的逆来顺受,等我们站到那权力的巅峰上时,在报怨这些! 这个应该用指针去做了!
还有就是 scanf 函数的使用,需要添加#define _CRT_SECURE_NO_WARNINGS 我现在现在练习都用 GCC 了 换2017啊{:10_256:} NAME_绝 发表于 2018-11-15 17:29
换2017啊
vs2017也不支持动态数组
我也不知道该咋办。去年VS的C++文件还支持。随意使用a定义数组。但是现在发现,C++也不支持了。 没错,我就是VS2015,也是刚刚看到这里,就来到这里了{:10_269:}
页:
[1]