A小小鸟 发表于 2018-11-14 19:44:58

关于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:}

A小小鸟 发表于 2018-11-14 19:45:41

作为微软的官方编译器,居然就这样啊,让我好失望啊{:10_266:}

TCY 发表于 2018-11-14 21:14:01

编译器又不知道n是不是常量,当然会报错

人造人 发表于 2018-11-14 21:23:36

没错,vs就是不支持C99

人造人 发表于 2018-11-14 21:42:32

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>

A小小鸟 发表于 2018-11-15 13:23:13

TCY 发表于 2018-11-14 21:14
编译器又不知道n是不是常量,当然会报错

但是在c99的标准中,c99是可以支持动态数组的

A小小鸟 发表于 2018-11-15 13:24:22

人造人 发表于 2018-11-14 21:23
没错,vs就是不支持C99

所以说,不知道vs2015有什么好,c99都不支持,定义动态数组也不行,一下子感觉代码灵活性少了好多啊

╰☆忝婲雨☆╮ 发表于 2018-11-15 14:04:34

A小小鸟 发表于 2018-11-15 13:24
所以说,不知道vs2015有什么好,c99都不支持,定义动态数组也不行,一下子感觉代码灵活性少了好多啊

因为C语言标准委员会不是微软主导,html标准制订也是苹果、adobe主导,大公司是有脾气的!

╰☆忝婲雨☆╮ 发表于 2018-11-15 14:14:01

A小小鸟 发表于 2018-11-15 13:24
所以说,不知道vs2015有什么好,c99都不支持,定义动态数组也不行,一下子感觉代码灵活性少了好多啊

程序员就是小綿羊而已,如果公司让你用VS,你就得用VS,哪那么多事!想改变这一切,就得成为CEO,迎取白富美,走向人生巅峰!

╰☆忝婲雨☆╮ 发表于 2018-11-15 14:18:24

A小小鸟 发表于 2018-11-15 13:24
所以说,不知道vs2015有什么好,c99都不支持,定义动态数组也不行,一下子感觉代码灵活性少了好多啊

英式英语才是正统,可M国强大,所以学KK音标的更多,我们不是要报怨为什么这么多口音,程序员要懂的逆来顺受,等我们站到那权力的巅峰上时,在报怨这些!

当打野会编程 发表于 2018-11-15 15:46:18

这个应该用指针去做了!
还有就是 scanf 函数的使用,需要添加#define _CRT_SECURE_NO_WARNINGS

michael蒋 发表于 2018-11-15 16:51:32

我现在现在练习都用 GCC 了

NAME_绝 发表于 2018-11-15 17:29:15

换2017啊{:10_256:}

人造人 发表于 2018-11-15 21:30:18

NAME_绝 发表于 2018-11-15 17:29
换2017啊

vs2017也不支持动态数组

405794672 发表于 2020-5-28 18:28:55

我也不知道该咋办。去年VS的C++文件还支持。随意使用a定义数组。但是现在发现,C++也不支持了。

16603050736 发表于 2021-2-2 16:33:16

没错,我就是VS2015,也是刚刚看到这里,就来到这里了{:10_269:}
页: [1]
查看完整版本: 关于vs2015不支持c99标准的问题