小编vio*_*313的帖子

gcc抱怨:可能无法初始化变量大小的对象

我看过这些并且他们没有回答我的问题:

可能无法初始化可变大小的对象

C编译错误:"可能无法初始化可变大小的对象"

错误:可能无法初始化可变大小的对象.但为什么?


我正在尝试编写一些相当可移植的c代码:

int main () 
{
    const int foo=13;
    int bar[foo]={0};
    return 0;
}
Run Code Online (Sandbox Code Playgroud)


使用以下任 一方法variable-sized object may not be initialized编译c代码时出错:

  • gcc 4.3.4
  • arm-linux-gnueabi-gcc 4.4.5

如果我cVS2008中编译它,我得到一个略有不同error C2057: expected constant expression


我明白,在这里,c代码编译器并没有认识const int foo=13;到它是真正的常量; 例如我们可能有

void a(int fool) 
{    
    const int foo=fool;
    int bar[foo]={0};
}
Run Code Online (Sandbox Code Playgroud)


我也意识到,与gcc编译器不同,VS2008编译器没有C99可变长度数组的概念.那个MS显然没有提到任何未来的支持.


然而,cpp使用gccMS编译器编译代码完全不同/更聪明?


而且我不明白 …

c gcc gcc4

7
推荐指数
1
解决办法
1万
查看次数

意外的Python元组行为

0 2当我把它交给Python时,为什么会得到一个奇怪的结果?

#tuples ~wtF?
a=()
b=(a)
c=(a,1)
len(b)
len(c)
Run Code Online (Sandbox Code Playgroud)

注意:我得到了1 2列表的预期 结果:

a=[]
b=[a]
c=[a,1]
len(b)
len(c)
Run Code Online (Sandbox Code Playgroud)

这发生在Linux上:

$ python --version
Python 2.7.2+
Run Code Online (Sandbox Code Playgroud)

编辑:wrt回答到目前为止

因为作业,中的某种原因,这也是如此c=(a,1)

>>> print b
()
>>> print c
((), 1)
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
2
解决办法
278
查看次数

git log internals:使用反向选项的性能

为了拯救我/其他人深入研究内部结构,谁能告诉我git log A..B在给出--reverse选项时性能是否更差?

我的理解是提交列表是双重链接的,所以我不会想到。

然而:

如果我使用该-nX选项,git log -nX A..B则从 B 产生 X 个提交。

但是现在如果我使用git log -nX --reverse A..B i * 仍然会从 B 获得 X 次提交,尽管顺序相反。

?

git

0
推荐指数
1
解决办法
153
查看次数

标签 统计

c ×1

gcc ×1

gcc4 ×1

git ×1

python ×1