C99就有的变长数组VLA,VS不支持?

kmsch 2015-12-16 11:37:32
加精
http://www.cnblogs.com/cpoint/p/3368380.html

此文最后的二维变长数组测试代码,放到VS下,这句通不过:int sum2d(int rows, int cols, int ar[rows][cols])
...全文
5569 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
versatts 2017-06-08
  • 打赏
  • 举报
回复
改成这样试试 int sum2d(int rows, int cols, int **ar)
vmpe123 2017-03-15
  • 打赏
  • 举报
回复
这个vc对于c的支持不是特别的好
D123_doudou 2016-01-05
  • 打赏
  • 举报
回复
楼上说C编译器是C++编译器顺便实现的,你们把有的时候连C编译器都没有的嵌入式扔到哪里去了
kmsch 2015-12-21
  • 打赏
  • 举报
回复
好的,谢谢各位
zhangwuji156 2015-12-19
  • 打赏
  • 举报
回复
VS貌似对支持C标准,不太感兴趣,对C++的支持一直在更新,C99,一直没支持……
idzeta 2015-12-19
  • 打赏
  • 举报
回复
引用 7 楼 kmsch 的回复:
[quote=引用 4 楼 pcboyxhy 的回复:] [quote=引用 3 楼 kmsch 的回复:] [quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有std::array和std::tuple,比VLA强百倍[/quote]
引用 5 楼 akirya 的回复:
[quote=引用 3 楼 kmsch 的回复:] [quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有 std::vector std::array[/quote]
引用 6 楼 lm_whales 的回复:
可变数组做参数,确实很漂亮,可惜生不逢时。 C++出来了,但是并不就立即支持它 因为它能够解决的问题很有限 C++ 有更多手段实现与它类似的功能,虽然未必有他漂亮。 而如今C编译器,往往只是C++编译器的的附赠品,很少单独发行。
这种从语法上最基本层面上的支持C++竟然没有啊,虽说楼上各位说了很多更强的解决办法,但这都仅仅是通过不同方式实现出来的,而不是语法层面上的。感觉不科学啊,不是说C++是完全包含了C。。[/quote] C++14草案中有类似VLA的东西,在最后时刻被剃出去了。
fefe82 2015-12-18
  • 打赏
  • 举报
回复
gcc 是支持的。
引用 15 楼 kmsch 的回复:
[quote=引用 12 楼 fefe82 的回复:] 从语法上将, C++ 与 C 有很多的不同。他们都有自己独有的东西,并不互相包含。 [quote=引用 7 楼 kmsch 的回复:] [quote=引用 4 楼 pcboyxhy 的回复:] [quote=引用 3 楼 kmsch 的回复:] [quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有std::array和std::tuple,比VLA强百倍[/quote]
引用 5 楼 akirya 的回复:
[quote=引用 3 楼 kmsch 的回复:] [quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有 std::vector std::array[/quote]
引用 6 楼 lm_whales 的回复:
可变数组做参数,确实很漂亮,可惜生不逢时。 C++出来了,但是并不就立即支持它 因为它能够解决的问题很有限 C++ 有更多手段实现与它类似的功能,虽然未必有他漂亮。 而如今C编译器,往往只是C++编译器的的附赠品,很少单独发行。
这种从语法上最基本层面上的支持C++竟然没有啊,虽说楼上各位说了很多更强的解决办法,但这都仅仅是通过不同方式实现出来的,而不是语法层面上的。感觉不科学啊,不是说C++是完全包含了C。。[/quote][/quote]
引用 13 楼 akirya 的回复:
[quote=引用 11 楼 akirya 的回复:] 1 栈的大小是有限的 2 sizeof就得增加功能变成运行时的。 3 支持C98已经能满足绝大多数的需求 MS是商业公司,印象中是做过调查C99需求不大,所以就不支持了。 而且我也没感觉到变长数组有什么好处
更正一下,是C89,不是C98[/quote] 谢谢,再问一下其他编译器是否支持,比如GCC下[/quote]
kmsch 2015-12-18
  • 打赏
  • 举报
回复
引用 12 楼 fefe82 的回复:
从语法上将, C++ 与 C 有很多的不同。他们都有自己独有的东西,并不互相包含。 [quote=引用 7 楼 kmsch 的回复:] [quote=引用 4 楼 pcboyxhy 的回复:] [quote=引用 3 楼 kmsch 的回复:] [quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有std::array和std::tuple,比VLA强百倍[/quote]
引用 5 楼 akirya 的回复:
[quote=引用 3 楼 kmsch 的回复:] [quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有 std::vector std::array[/quote]
引用 6 楼 lm_whales 的回复:
可变数组做参数,确实很漂亮,可惜生不逢时。 C++出来了,但是并不就立即支持它 因为它能够解决的问题很有限 C++ 有更多手段实现与它类似的功能,虽然未必有他漂亮。 而如今C编译器,往往只是C++编译器的的附赠品,很少单独发行。
这种从语法上最基本层面上的支持C++竟然没有啊,虽说楼上各位说了很多更强的解决办法,但这都仅仅是通过不同方式实现出来的,而不是语法层面上的。感觉不科学啊,不是说C++是完全包含了C。。[/quote][/quote]
引用 13 楼 akirya 的回复:
[quote=引用 11 楼 akirya 的回复:] 1 栈的大小是有限的 2 sizeof就得增加功能变成运行时的。 3 支持C98已经能满足绝大多数的需求 MS是商业公司,印象中是做过调查C99需求不大,所以就不支持了。 而且我也没感觉到变长数组有什么好处
更正一下,是C89,不是C98[/quote] 谢谢,再问一下其他编译器是否支持,比如GCC下
lm_whales 2015-12-17
  • 打赏
  • 举报
回复
那就是C标准,很难获得追求者了, 毕竟专门做C编译器的不多 大部分C编译器,都是C++ 系统的一部分了 都是做了C++编译器,顺带做个C编译器。 毕竟C++ 没有放弃C,总是同时发布一个C编译器。 不像java 完全不需要和C编译器一起发布
kmsch 2015-12-17
  • 打赏
  • 举报
回复
引用 8 楼 lm_whales 的回复:
[quote=引用 7 楼 kmsch 的回复:] [quote=引用 4 楼 pcboyxhy 的回复:] [quote=引用 3 楼 kmsch 的回复:] [quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有std::array和std::tuple,比VLA强百倍[/quote]
引用 5 楼 akirya 的回复:
[quote=引用 3 楼 kmsch 的回复:] [quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有 std::vector std::array[/quote]
引用 6 楼 lm_whales 的回复:
可变数组做参数,确实很漂亮,可惜生不逢时。 C++出来了,但是并不就立即支持它 因为它能够解决的问题很有限 C++ 有更多手段实现与它类似的功能,虽然未必有他漂亮。 而如今C编译器,往往只是C++编译器的的附赠品,很少单独发行。
这种从语法上最基本层面上的支持C++竟然没有啊,虽说楼上各位说了很多更强的解决办法,但这都仅仅是通过不同方式实现出来的,而不是语法层面上的。感觉不科学啊,不是说C++是完全包含了C。。[/quote] 你先试试C支持不支持,文件存成.c 从工程量去掉那个.cpp [/quote] 一样不支持。。
mLee79 2015-12-17
  • 打赏
  • 举报
回复
VLA 也就 alloca 的马甲, 基本上的编译器都支持, 语法上支持也没啥太大的价值, 自己写个 alloca 的宏就是了。
  • 打赏
  • 举报
回复
引用 11 楼 akirya 的回复:
1 栈的大小是有限的 2 sizeof就得增加功能变成运行时的。 3 支持C98已经能满足绝大多数的需求 MS是商业公司,印象中是做过调查C99需求不大,所以就不支持了。 而且我也没感觉到变长数组有什么好处
更正一下,是C89,不是C98
fefe82 2015-12-17
  • 打赏
  • 举报
回复
从语法上将, C++ 与 C 有很多的不同。他们都有自己独有的东西,并不互相包含。
引用 7 楼 kmsch 的回复:
[quote=引用 4 楼 pcboyxhy 的回复:] [quote=引用 3 楼 kmsch 的回复:] [quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有std::array和std::tuple,比VLA强百倍[/quote]
引用 5 楼 akirya 的回复:
[quote=引用 3 楼 kmsch 的回复:] [quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有 std::vector std::array[/quote]
引用 6 楼 lm_whales 的回复:
可变数组做参数,确实很漂亮,可惜生不逢时。 C++出来了,但是并不就立即支持它 因为它能够解决的问题很有限 C++ 有更多手段实现与它类似的功能,虽然未必有他漂亮。 而如今C编译器,往往只是C++编译器的的附赠品,很少单独发行。
这种从语法上最基本层面上的支持C++竟然没有啊,虽说楼上各位说了很多更强的解决办法,但这都仅仅是通过不同方式实现出来的,而不是语法层面上的。感觉不科学啊,不是说C++是完全包含了C。。[/quote]
  • 打赏
  • 举报
回复
引用 7 楼 kmsch 的回复:
[quote=引用 4 楼 pcboyxhy 的回复:] [quote=引用 3 楼 kmsch 的回复:] [quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有std::array和std::tuple,比VLA强百倍[/quote]
引用 5 楼 akirya 的回复:
[quote=引用 3 楼 kmsch 的回复:] [quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有 std::vector std::array[/quote]
引用 6 楼 lm_whales 的回复:
可变数组做参数,确实很漂亮,可惜生不逢时。 C++出来了,但是并不就立即支持它 因为它能够解决的问题很有限 C++ 有更多手段实现与它类似的功能,虽然未必有他漂亮。 而如今C编译器,往往只是C++编译器的的附赠品,很少单独发行。
这种从语法上最基本层面上的支持C++竟然没有啊,虽说楼上各位说了很多更强的解决办法,但这都仅仅是通过不同方式实现出来的,而不是语法层面上的。感觉不科学啊,不是说C++是完全包含了C。。[/quote] 1 栈的大小是有限的 2 sizeof就得增加功能变成运行时的。 3 支持C98已经能满足绝大多数的需求 MS是商业公司,印象中是做过调查C99需求不大,所以就不支持了。 而且我也没感觉到变长数组有什么好处
  • 打赏
  • 举报
回复
VS不支持C99
赵4老师 2015-12-16
  • 打赏
  • 举报
回复
思考一下为什么不把整个互联网内容当作函数参数传来传去呢?
lm_whales 2015-12-16
  • 打赏
  • 举报
回复
引用 7 楼 kmsch 的回复:
[quote=引用 4 楼 pcboyxhy 的回复:] [quote=引用 3 楼 kmsch 的回复:] [quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有std::array和std::tuple,比VLA强百倍[/quote]
引用 5 楼 akirya 的回复:
[quote=引用 3 楼 kmsch 的回复:] [quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有 std::vector std::array[/quote]
引用 6 楼 lm_whales 的回复:
可变数组做参数,确实很漂亮,可惜生不逢时。 C++出来了,但是并不就立即支持它 因为它能够解决的问题很有限 C++ 有更多手段实现与它类似的功能,虽然未必有他漂亮。 而如今C编译器,往往只是C++编译器的的附赠品,很少单独发行。
这种从语法上最基本层面上的支持C++竟然没有啊,虽说楼上各位说了很多更强的解决办法,但这都仅仅是通过不同方式实现出来的,而不是语法层面上的。感觉不科学啊,不是说C++是完全包含了C。。[/quote] 你先试试C支持不支持,文件存成.c 从工程量去掉那个.cpp
kmsch 2015-12-16
  • 打赏
  • 举报
回复
引用 4 楼 pcboyxhy 的回复:
[quote=引用 3 楼 kmsch 的回复:] [quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有std::array和std::tuple,比VLA强百倍[/quote]
引用 5 楼 akirya 的回复:
[quote=引用 3 楼 kmsch 的回复:] [quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有 std::vector std::array[/quote]
引用 6 楼 lm_whales 的回复:
可变数组做参数,确实很漂亮,可惜生不逢时。 C++出来了,但是并不就立即支持它 因为它能够解决的问题很有限 C++ 有更多手段实现与它类似的功能,虽然未必有他漂亮。 而如今C编译器,往往只是C++编译器的的附赠品,很少单独发行。
这种从语法上最基本层面上的支持C++竟然没有啊,虽说楼上各位说了很多更强的解决办法,但这都仅仅是通过不同方式实现出来的,而不是语法层面上的。感觉不科学啊,不是说C++是完全包含了C。。
lm_whales 2015-12-16
  • 打赏
  • 举报
回复
可变数组做参数,确实很漂亮,可惜生不逢时。 C++出来了,但是并不就立即支持它 因为它能够解决的问题很有限 C++ 有更多手段实现与它类似的功能,虽然未必有他漂亮。 而如今C编译器,往往只是C++编译器的的附赠品,很少单独发行。
  • 打赏
  • 举报
回复
引用 3 楼 kmsch 的回复:
[quote=引用 2 楼 akirya 的回复:] VS不支持C99
C++里也没变长数组?这么好的东西没支持?[/quote] C++有 std::vector std::array
加载更多回复(2)

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧