姬世鹏 发表于 2019-11-30 21:06:16

关于vs2010的C标准和平时学习的c99标准不同的问题

一个简单的程序:
#include <stdio.h>

int main()
{
        int a , b ;
      scanf("%d%d",&a,&b);

                int num = {1};//在vs2010中会提示让输入常量表达式(vs2010不支持c99),那该如何完成定义操作?另外问一下鱼c教的c99会不会在vs2010中会出现很多差异?(要考二级必须用vs2010,突然发现它不支持c99有点慌);

        return 0;
}

人造人 发表于 2019-11-30 21:06:17

〃忝書γě渎ぐ 发表于 2019-12-1 11:34
按理说微软那么大,想支持就能支持,为什么不支持,他们出于有什么考虑,安全性还是别的什么?

我也没有找到让我满意的理由,我找到了一个比较有说服力的理由是
可以用动态内存分配,没必要支持变长数组

在没有更好的理由之前,这就是我找到的理由

ba21 发表于 2019-11-30 22:05:26

可看下这里
https://www.cnblogs.com/emituofo/archive/2012/07/21/2601930.html

〃忝書γě渎ぐ 发表于 2019-11-30 23:36:12

vs默认建的是cpp文件,新建文件时手动输入扩展名xxx.c

〃忝書γě渎ぐ 发表于 2019-11-30 23:41:28


VS2010完美支持c99,只是VS系列默认新建的是C++文件,新建工程时需要手动加上扩展名.c
C++支持百分之99的C语法,可由于面向对象的关系,有极少部分C语言语法是不兼容的。

人造人 发表于 2019-12-1 03:16:39

〃忝書γě渎ぐ 发表于 2019-11-30 23:41
VS2010完美支持c99,只是VS系列默认新建的是C++文件,新建工程时需要手动加上扩展名.c
C++支持百分之99 ...

"VS2010完美支持c99"

这句话我是持怀疑态度的,我这边没有vs2010,你可以用你的vs2010编译一下楼上的代码,然后截图证明一下这句话吗?

〃忝書γě渎ぐ 发表于 2019-12-1 11:31:27

人造人 发表于 2019-12-1 03:16
"VS2010完美支持c99"

这句话我是持怀疑态度的,我这边没有vs2010,你可以用你的vs2010编译一下楼上的 ...

哦,我错了,以前试过一些C99标准都支持,这个确实不支持,可是为什么不支持呢?

〃忝書γě渎ぐ 发表于 2019-12-1 11:34:36

人造人 发表于 2019-12-1 03:16
"VS2010完美支持c99"

这句话我是持怀疑态度的,我这边没有vs2010,你可以用你的vs2010编译一下楼上的 ...

按理说微软那么大,想支持就能支持,为什么不支持,他们出于有什么考虑,安全性还是别的什么?

姬世鹏 发表于 2019-12-1 11:58:07

我改成了.c类型但没有作用,不过这次没有提示输入常量表达式

姬世鹏 发表于 2019-12-1 11:59:35

〃忝書γě渎ぐ 发表于 2019-11-30 23:41
VS2010完美支持c99,只是VS系列默认新建的是C++文件,新建工程时需要手动加上扩展名.c
C++支持百分之99 ...

改成了.c类型的但没有效果

姬世鹏 发表于 2019-12-1 12:00:57

ba21 发表于 2019-11-30 22:05
可看下这里
https://www.cnblogs.com/emituofo/archive/2012/07/21/2601930.html

那该如何解决数组不定长问题?

姬世鹏 发表于 2019-12-1 12:02:06

〃忝書γě渎ぐ 发表于 2019-11-30 23:41
VS2010完美支持c99,只是VS系列默认新建的是C++文件,新建工程时需要手动加上扩展名.c
C++支持百分之99 ...

用了,但他就是支持不了数组不定长问题。

姬世鹏 发表于 2019-12-1 12:04:09

人造人 发表于 2019-12-1 03:16
"VS2010完美支持c99"

这句话我是持怀疑态度的,我这边没有vs2010,你可以用你的vs2010编译一下楼上的 ...

楼下已发

〃忝書γě渎ぐ 发表于 2019-12-1 12:16:36

姬世鹏 发表于 2019-12-1 12:02
用了,但他就是支持不了数组不定长问题。

那就先换个编译器使用吧,用大学里考试用的编译器。

姬世鹏 发表于 2019-12-1 12:19:30

〃忝書γě渎ぐ 发表于 2019-12-1 12:16
那就先换个编译器使用吧,用大学里考试用的编译器。

哭,计算机二级要求使用vs2010

〃忝書γě渎ぐ 发表于 2019-12-1 12:24:03

本帖最后由 〃忝書γě渎ぐ 于 2019-12-1 12:25 编辑

姬世鹏 发表于 2019-12-1 12:19
哭,计算机二级要求使用vs2010

学校让用什么,就用学校推荐的,即然不支持C99一些标准,那你还担心什么,暂时不用这些标准不就行了?先过了2级在说。

姬世鹏 发表于 2019-12-1 12:26:11

〃忝書γě渎ぐ 发表于 2019-12-1 12:24
学校让用什么,就用学校推荐的,即然不支持C99一些标准,那你还担心什么,暂时不用这些标准不就行了? ...

好吧,谢谢啦

〃忝書γě渎ぐ 发表于 2019-12-1 12:27:41

姬世鹏 发表于 2019-12-1 12:26
好吧,谢谢啦

不用纠结太多,学习时你学了C99,可工作单位就让你用vs有什么办法,也发挥不出来,不过学习还是要学的。

lucifinilhades 发表于 2019-12-1 12:39:35

那就用动态内存分配呗。

〃忝書γě渎ぐ 发表于 2019-12-1 13:41:26

人造人 发表于 2019-12-1 13:25
我也没有找到让我满意的理由,我找到了一个比较有说服力的理由是
可以用动态内存分配,没必要支持变长数 ...

谢谢,教会我遇事要严谨,因为在看书时,一些c99都能运行,我就错误的认为全都支持呢,而没有去运行试试。
页: [1] 2
查看完整版本: 关于vs2010的C标准和平时学习的c99标准不同的问题