鱼C论坛

 找回密码
 立即注册
查看: 7632|回复: 15

关于vs2015不支持c99标准的问题

[复制链接]
发表于 2018-11-14 19:44:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天,看到小甲鱼所写的代码是c99里面的动态定义数组,代码如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int n, i;
        printf("请输入你要输入的字符的个数: ");
        scanf("%d",&n);
        char a[n+1];
        printf("请开始输入字符: ");
        getchar();
        for (i = 0; i < n; i++)
        {
                scanf("%c",&a[i]);
        }
        a[n] = '\0';
        printf("你输入的字符串是:%s\n",a);
        system("pause");
        return 0;
}
结果,用vs2015出现这个情况,想问一下,有没有人知道如何修改vs的编译器设置啊,本人已经网上找了半天,结果都没有什么结果。。。

vs不支持c99

vs不支持c99
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-11-14 19:45:41 | 显示全部楼层
作为微软的官方编译器,居然就这样啊,让我好失望啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-14 21:14:01 | 显示全部楼层
编译器又不知道n是不是常量,当然会报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-14 21:23:36 | 显示全部楼层
没错,vs就是不支持C99
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-14 21:42:32 | 显示全部楼层
TCY 发表于 2018-11-14 21:14
编译器又不知道n是不是常量,当然会报错

可以是变量,可以定义动态数组,前提是编译器支持C99

  1. E:\tmp>cat main.c
  2. #include <stdio.h>

  3. int main(void)
  4. {
  5.         int size;
  6.         printf("Please enter a number: ");
  7.         scanf("%d", &size);
  8.         int data[size];
  9.         for(int i = 0; i < size; ++i)
  10.                 data[i] = i + 100;
  11.         for(int i = 0; i < size; ++i)
  12.                 printf("%d ", data[i]);

  13.         printf("\n");
  14.         return 0;
  15. }

  16. E:\tmp>gcc -Wall -g -o main main.c

  17. E:\tmp>ls
  18. main.c  main.exe

  19. E:\tmp>main.exe
  20. Please enter a number: 10
  21. 100 101 102 103 104 105 106 107 108 109

  22. E:\tmp>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-15 13:23:13 | 显示全部楼层
TCY 发表于 2018-11-14 21:14
编译器又不知道n是不是常量,当然会报错

但是在c99的标准中,c99是可以支持动态数组的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-15 13:24:22 | 显示全部楼层
人造人 发表于 2018-11-14 21:23
没错,vs就是不支持C99

所以说,不知道vs2015有什么好,c99都不支持,定义动态数组也不行,一下子感觉代码灵活性少了好多啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

因为C语言标准委员会不是微软主导,html标准制订也是苹果、adobe主导,大公司是有脾气的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

程序员就是小綿羊而已,如果公司让你用VS,你就得用VS,哪那么多事!想改变这一切,就得成为CEO,迎取白富美,走向人生巅峰!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

英式英语才是正统,可M国强大,所以学KK音标的更多,我们不是要报怨为什么这么多口音,程序员要懂的逆来顺受,等我们站到那权力的巅峰上时,在报怨这些!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-15 15:46:18 | 显示全部楼层
这个应该用指针去做了!
还有就是 scanf 函数的使用,需要添加#define _CRT_SECURE_NO_WARNINGS
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-15 16:51:32 | 显示全部楼层
我现在现在练习都用 GCC 了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-15 17:29:15 | 显示全部楼层
换2017啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-15 21:30:18 | 显示全部楼层

vs2017也不支持动态数组
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 18:28:55 | 显示全部楼层
我也不知道该咋办。去年VS的C++文件还支持。随意使用a[n]定义数组。但是现在发现,C++也不支持了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-2 16:33:16 | 显示全部楼层
没错,我就是VS2015,也是刚刚看到这里,就来到这里了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 22:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表