Redian新闻
>
GCC 居然允许变量长度的向量
avatar
GCC 居然允许变量长度的向量# Programming - 葵花宝典
q*g
1
【 以下文字转载自 Linux 讨论区 】
发信人: qiuxing (球星), 信区: Linux
标 题: GCC 居然允许变量长度的向量
发信站: BBS 未名空间站 (Tue Nov 1 00:47:05 2005), 转信
这个程序本来是一个标准的错误程序,我的gcc居然连个报错都不给,顺利
编译,顺利运行。结果就是拿到Windows上用VC就编译通不过,我于是就被人
嘲笑了一把(^_^):
#include
int main ()
{
int n = 5;
int a[n];
int i;
for (i = 0; i < 5; i++)
{
a[i] = 2 * i;
printf("%d\n", a[i]);
}
return 0;
}
avatar
l*k
2
this one is ok ba?

【在 q*****g 的大作中提到】
: 【 以下文字转载自 Linux 讨论区 】
: 发信人: qiuxing (球星), 信区: Linux
: 标 题: GCC 居然允许变量长度的向量
: 发信站: BBS 未名空间站 (Tue Nov 1 00:47:05 2005), 转信
: 这个程序本来是一个标准的错误程序,我的gcc居然连个报错都不给,顺利
: 编译,顺利运行。结果就是拿到Windows上用VC就编译通不过,我于是就被人
: 嘲笑了一把(^_^):
: #include
: int main ()
: {

avatar
t*q
3
gcc extension

【在 q*****g 的大作中提到】
: 【 以下文字转载自 Linux 讨论区 】
: 发信人: qiuxing (球星), 信区: Linux
: 标 题: GCC 居然允许变量长度的向量
: 发信站: BBS 未名空间站 (Tue Nov 1 00:47:05 2005), 转信
: 这个程序本来是一个标准的错误程序,我的gcc居然连个报错都不给,顺利
: 编译,顺利运行。结果就是拿到Windows上用VC就编译通不过,我于是就被人
: 嘲笑了一把(^_^):
: #include
: int main ()
: {

avatar
q*g
4
其实应该说是C99 extension,呵呵。

【在 t*q 的大作中提到】
: gcc extension
avatar
q*g
5
不过话说回来,这个extension属于搞计算的人非常非常有用的一个extension啊。
回头有时间再去看看VC是不是有什么option可以接受这样的extension。

【在 q*****g 的大作中提到】
: 其实应该说是C99 extension,呵呵。
avatar
b*r
6
thanks a lot. never knew this :)

【在 q*****g 的大作中提到】
: 不过话说回来,这个extension属于搞计算的人非常非常有用的一个extension啊。
: 回头有时间再去看看VC是不是有什么option可以接受这样的extension。

avatar
n*t
7
这个是C99 ex?????????????
我觉得不太可能啊.

【在 q*****g 的大作中提到】
: 其实应该说是C99 extension,呵呵。
avatar
n*t
8
搞计算要这个extension干什么?

【在 q*****g 的大作中提到】
: 不过话说回来,这个extension属于搞计算的人非常非常有用的一个extension啊。
: 回头有时间再去看看VC是不是有什么option可以接受这样的extension。

avatar
e*e
9
好像c++事可以得。
标准得c事不星得。
try to use vector.
in fact I find vector is really good
and the overhead is very very small.

【在 q*****g 的大作中提到】
: 【 以下文字转载自 Linux 讨论区 】
: 发信人: qiuxing (球星), 信区: Linux
: 标 题: GCC 居然允许变量长度的向量
: 发信站: BBS 未名空间站 (Tue Nov 1 00:47:05 2005), 转信
: 这个程序本来是一个标准的错误程序,我的gcc居然连个报错都不给,顺利
: 编译,顺利运行。结果就是拿到Windows上用VC就编译通不过,我于是就被人
: 嘲笑了一把(^_^):
: #include
: int main ()
: {

avatar
s*c
10
I guess it is either interpreted this way
int a[n]; -> int *a = new int[n];
or const int n=5; int a[n].
I am wondering if you can do sth like this:
int n;
scanf("%d", &n);
int a[n];

【在 q*****g 的大作中提到】
: 不过话说回来,这个extension属于搞计算的人非常非常有用的一个extension啊。
: 回头有时间再去看看VC是不是有什么option可以接受这样的extension。

avatar
b*r
11
试一下不就知道了。
一点问题都没有。

【在 s*****c 的大作中提到】
: I guess it is either interpreted this way
: int a[n]; -> int *a = new int[n];
: or const int n=5; int a[n].
: I am wondering if you can do sth like this:
: int n;
: scanf("%d", &n);
: int a[n];

avatar
p*o
12
no, it's something like _alloca

【在 s*****c 的大作中提到】
: I guess it is either interpreted this way
: int a[n]; -> int *a = new int[n];
: or const int n=5; int a[n].
: I am wondering if you can do sth like this:
: int n;
: scanf("%d", &n);
: int a[n];

avatar
q*g
13
其实主要是方便。比如说我可以写一个函数读进去一个array算一个数,我就
不需要事先知道这个array有多长。

【在 n******t 的大作中提到】
: 搞计算要这个extension干什么?
avatar
q*g
14

我后来就这么改了。VC才通过编译。
这个我怀疑标准C都不行。
gcc肯定可以。

【在 s*****c 的大作中提到】
: I guess it is either interpreted this way
: int a[n]; -> int *a = new int[n];
: or const int n=5; int a[n].
: I am wondering if you can do sth like this:
: int n;
: scanf("%d", &n);
: int a[n];

avatar
c*e
15
还是不要用complier dependent 的代码,呵呵.-Wall也不报告warning吗?

【在 q*****g 的大作中提到】
: 其实主要是方便。比如说我可以写一个函数读进去一个array算一个数,我就
: 不需要事先知道这个array有多长。

avatar
q*e
16
That's standard C99 extension, conslt ISO9899:1999. So
you should not worry about it: C 99 aloows things like that:
void func(int n) {
int a[n];
....
}
If you compiler failed to support it, just dump your compiler, hehe

【在 c****e 的大作中提到】
: 还是不要用complier dependent 的代码,呵呵.-Wall也不报告warning吗?
avatar
d*q
17
in c
const int xx
only means this variable is unmutable
but not a constant

【在 q*****g 的大作中提到】
:
: 我后来就这么改了。VC才通过编译。
: 这个我怀疑标准C都不行。
: gcc肯定可以。

avatar
c*e
18
thanks for your reminder, but a lot of people can't dump vc.

【在 q***e 的大作中提到】
: That's standard C99 extension, conslt ISO9899:1999. So
: you should not worry about it: C 99 aloows things like that:
: void func(int n) {
: int a[n];
: ....
: }
: If you compiler failed to support it, just dump your compiler, hehe

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。