标签: variable-declaration

C99在开源项目中混合了声明和代码?

为什么C99混合声明和代码没有在Linux内核GNOME等开源C项目中使用

我非常喜欢混合声明和代码,因为它使代码更具可读性,并且通过将变量的范围限制在最窄的范围内来防止难以看到错误.这是Google for C++推荐的.

例如,Linux 至少需要 GCC 3.2,而GCC 3.1 支持 C99混合声明和代码

c scope c99 variable-declaration

6
推荐指数
1
解决办法
1150
查看次数

在VB.NET中将变量声明为Byte的问题

我正在尝试一个我在网上找到的程序.为什么有必要在声明的最后加上大括号?它给出了一个错误:"Byte没有构造函数".

Dim data As Byte() = New Byte(1023) {}
Run Code Online (Sandbox Code Playgroud)

我不能把这样的代码,它产生错误"字节不能是一维数组".

Dim arr As Byte() = New Byte()
Run Code Online (Sandbox Code Playgroud)

你能解释一下为什么会这样吗?

.net vb.net variables byte variable-declaration

6
推荐指数
2
解决办法
2万
查看次数

在循环外移动变量声明是否真的会提高性能?

我正在编写非常耗费处理器的密码学代码(C#),所以我正在寻找任何性能提升,无论多小.我已经在这个问题上听到了双方的意见.

是否有任何性能优势

int smallPrime, spGen;

for (int i = 0; i < numSmallPrimes; i++)
{
    smallPrime = smallPrimes[i];
    spGen = spHexGen[i];

    [...]
}
Run Code Online (Sandbox Code Playgroud)

在这?

for (int i = 0; i < numSmallPrimes; i++)
{
    int smallPrime = smallPrimes[i];
    int spGen = spHexGen[i];

    [...]
}
Run Code Online (Sandbox Code Playgroud)

编译器是否已经这样做了?

c# performance variable-declaration

6
推荐指数
1
解决办法
1085
查看次数

加倍为真/假

Bjarne建议使用if中的条件作为范围限制.特别是这个例子.

if ( double d = fd()  ) {
   // d in scope here...
}
Run Code Online (Sandbox Code Playgroud)

我很好奇如何以真/假的方式解释声明.

  1. 这是一个宣言
  2. 这是双倍的.

编辑:它在6.3.2.1 C++编程语言中作为推荐.

Edit2:templatetypedefs建议指针,特别是动态强制转换,可能会让人深入了解Bjarnes的建议.

SteveJessop告诉我: - 条件不是表达式它也可以是声明,使用的值是被评估的值.

c++ if-statement type-conversion scoping variable-declaration

6
推荐指数
2
解决办法
1725
查看次数

MySQL中以下变量初始化样式有何不同?

我对涉及MySQL中的变量声明的查询相当新.我见过各种风格,我并不完全清楚这些实际上是做什么的.我对这些实际上做了什么有疑问.

1)

set @row:=0;
SELECT name, @row:=@row + 1 AS rownum
FROM animal
Run Code Online (Sandbox Code Playgroud)

2)

SELECT name, @row:=@row + 1 AS rownum
FROM (SELECT @row:= 0) c, animal
Run Code Online (Sandbox Code Playgroud)

两者都返回相同:

  name rownum
|| cat || 1 ||
|| cat || 2 ||
|| dog || 3 ||
|| dog || 4 ||
|| dog || 5 ||
|| ant || 6 ||
Run Code Online (Sandbox Code Playgroud)

上述两个查询有哪些不同之处,两者中的哪一个在范围,效率,编码习惯,用例方面采用了哪些?

3)现在如果我这样做:

set @row:=0;
SELECT name, @row:=@row + 1 AS rownum
FROM (SELECT @row:= 123) c, animal
Run Code Online (Sandbox Code Playgroud)

我明白了

  name  rownum …
Run Code Online (Sandbox Code Playgroud)

mysql sql select variable-initialization variable-declaration

6
推荐指数
1
解决办法
1584
查看次数

if子句中的变量声明

if(someCondition)
  int a=10;//Compilation Error
else if(SomeOtherCondition){
int b=10;//no compilation Error
}
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况.为什么在第一种情况下出现编译错误.如果我放括号,那么没有编译错误,但if语句括号是可选的,如果它是一个语句.

java if-statement variable-declaration

6
推荐指数
1
解决办法
237
查看次数

在python中动态声明/创建列表

我是python的初学者,并且遇到了在python脚本中动态声明/创建一些列表的要求.我需要创建4个列表对象,如depth_1,depth_2,depth_3,depth_4,输入为4.Like

for (i = 1; i <= depth; i++)
{
    ArrayList depth_i = new ArrayList();  //or as depth_i=[] in python
}
Run Code Online (Sandbox Code Playgroud)

所以它应该动态创建lists.Can你能给我一个解决方案吗?

感谢你在期待

python list creation dynamic variable-declaration

6
推荐指数
3
解决办法
3万
查看次数

变量初始化/声明中的逗号

我偶然发现了一段代码如下:

    void check()
    {
        int integer = 7;

        //integer2 is not declared anywhere
        int check = integer, integer2;

        //after running
        //check = 7
        //integer = 7
        //integer2 = 0
    }
Run Code Online (Sandbox Code Playgroud)

逗号的目的是什么?

c# variables variable-declaration

6
推荐指数
1
解决办法
973
查看次数

JavaScript范围冲突

我试图了解JavaScript的范围.如果我在函数之外声明一个变量,那么它就是GLOBAL.因此,我测试了以下代码以了解执行顺序.在下面的代码中,我期望"demo1"采用全局值"Volvo",因为我在声明函数内部具有相同名称的局部变量之前呈现该文本.但令我惊讶的是,我认为价值是"未定义的".

<!DOCTYPE html>
<html>

<body>
    <p id="demo"></p>
    <p id="demo1"></p>
    <p id="demo2"></p>
    <script>
        var carName = "Volvo";
        myFunction();
        document.getElementById("demo").innerHTML = carName;

        function myFunction() {
            document.getElementById("demo1").innerHTML = carName;
            var carName = "Volvo1";
            document.getElementById("demo2").innerHTML = carName;
        }
    </script>
</body>

</html>
Run Code Online (Sandbox Code Playgroud)

结果:

Volvo

undefined

Volvo1

我进一步修改了如果在函数内部声明另一个Global变量会发生什么,如下所示:

<!DOCTYPE html>
<html>

<body>

    <p id="demo"></p>
    <p id="demo1"></p>
    <p id="demo2"></p>

    <script>
        var carName = "Volvo";
        myFunction();
        document.getElementById("demo").innerHTML = carName;

        function myFunction() {
            document.getElementById("demo1").innerHTML = carName;

            //declaring another global variable
            carName = "Volvo1";
            document.getElementById("demo2").innerHTML = carName;
        }
    </script>
</body> …
Run Code Online (Sandbox Code Playgroud)

html javascript scope variable-declaration hoisting

6
推荐指数
1
解决办法
461
查看次数

使用Perl在循环中声明变量

我是Perl的新手,最近生成了以下代码.我已对其进行了广泛测试,并返回了所需的结果.但是我只是想知道是否有更多Perl经验的人可以就其可用性向我提出建议.

基本上,我在for循环中声明了一个带有'my'关键字的数组变量.然后,我在另一个已在前面提到的for循环之前声明的数组变量中使用此声明的数组变量的地址.基本代码结构如下所示:

my @Array_of_ALL_Vals;
for my $iloop (0 .. 10){
    my @Array_Vals;
    .
    Code in here to populate @Array_of_Vals
    .
    push @Array_of_ALL_Vals,\@Array_Vals;
}
Run Code Online (Sandbox Code Playgroud)

通常,@ Array_Vals变量每次都有不同的大小.此外,在循环中定义的数组@Array_Vals不会在代码中的任何其他位置使用,并且是for循环的本地.

我关心的是在for循环中声明数组.即使每次我假设每次循环迭代时变量的名称都相同,它也会被分配给不同的内存地址.它是否正确?

我认为最好在for循环中为数组名添加一个增量器,这样每次名称都会不同(@ Array_Vals1,@ Array_Vals2,...).然后我可以将这些值推送到@Array_of_ALL_Vals数组中,并确保不会覆盖最终的数组值.但是在做了一些搜索之后,我发现不鼓励这样的方法(包含变量的变量名).

所以我想我要问的是:我的方法是为每个循环迭代使用相同的数组名称,然后将此数组的地址附加到新数组(@Array_of_ALL_Vals)有效吗?或者,在执行所有迭代后,循环数组(@Array_Vals)不断被覆盖的事实是否会破坏我的数组@Array_of_ALL_Vals(其中包含@Array_Vals数组的地址)的有效性?

非常感谢任何评论

Gauss76

perl for-loop variable-declaration

6
推荐指数
1
解决办法
593
查看次数