标签: 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
查看次数

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

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

    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
查看次数

VB6中变量声明中的星号

在变量声明之后,星号(*)和数字的含义是什么?如图所示WpName As String * 6

Public Type WayPoint

   WpIndex As Integer
   WpName As String * 6
   WpLat As Double
   WpLon As Double
   WpLatDir As String * 1
   WpLonDir As String * 1

End Type
Run Code Online (Sandbox Code Playgroud)

vb6 variable-declaration

5
推荐指数
1
解决办法
1495
查看次数

变量定义为`Class <SomeProtocol> myClass`是什么意思?

我习惯于看到类似的东西,id<NSCopying> myVar或者MyObject<NSCopying> myVar我们在说明有问题的变量可以很高兴地拥有NSCopying调用它的方法,而编译器不会摇摆不定.

但是我最近发现了一些定义了这样一个变量的代码:

Class<NSCopying> myClass;
Run Code Online (Sandbox Code Playgroud)

我想知道这实际意味着什么,因为它似乎与前两个例子略有不同.似乎我们说变量myClass可以愉快地接受来自的方法调用NSCopying- 但是具有能够接受这些实例变量方法的类类型似乎没有多大意义.

在我看来,类型的变量在技术上是对象本身,这可能让我或编译器(可能是我!)感到困惑.

所以我猜我在问:

  1. Class<NSCopying> myClass;实际上是什么意思
  2. 怎么会Class<NSCopying> myClass;有所不同id<NSCopying> myVar
  3. 哪里可以Class<NSCopying> myClass;有意义地使用?

笔记:

  • 我只是用它NSCopying作为一个例子,并不是我用例的组成部分
  • 无论我指的是什么,Class我指的是Class用于声明类型变量的Obj-C关键字Class.我不是将它用作任何类类型的通用术语.

class objective-c variable-declaration objective-c-protocol

5
推荐指数
1
解决办法
240
查看次数

TSQL中带或不带"AS"关键字的参数

我对TSQL有点新手(主要是MySQL体验).我遇到了一些参数声明,我不确定在存储过程中使用与没有'as'关键字的情况下声明的差异是什么(如果有的话):

CREATE PROCEDURE [dbo].[SomeStoredProc]
    @variable1 varchar(50),
    @variable2 as varchar(50)
...
Run Code Online (Sandbox Code Playgroud)

t-sql parameters variable-declaration

5
推荐指数
1
解决办法
39
查看次数

在第一行代码中声明所有 javascript 变量的标准?

我们正在与一家新公司合作,他们有一个编码标准,他们在方法的第一行立即声明方法中使用的所有 Javascript 变量。

我问他们这样做是否有原因,并只是被告知这是他们的编码标准,所以我用谷歌搜索,显然这确实是一些网站推荐的标准。

我的第一个想法是,如果一个方法太大,以至于您实际上发现将所有变量放在顶部很有帮助,那么您的方法太大并且需要分解。

所以我的问题是,在顶部声明变量而不是在第一次使用变量时声明它们的目的是什么?它只是一个编码标准,旨在帮助那些编写(在我个人看来)我认为太长的方法的人,还是还有其他我忽略的好处?

javascript variable-declaration

5
推荐指数
1
解决办法
1116
查看次数

声明者和直接声明者有什么区别?

在作者 Brian W. Kernighan 和 Dennis M. Ritchie 的《C 编程语言》第二版中,他们讨论了声明符直接声明符。讨论从本书的第 14 页开始。122 与dcldirect-dcl的 您能以易于理解的方式解释声明符和直接声明符之间的区别吗?是什么让它变得直接

另外,在第 225

其中直接声明符是标识符或带括号的标识符。特别是,它不能通过 typedef 实现函数类型。

在我看来,声明符是变量或函数的声明。在“TD”中,T部分指定其说明符和类型,D部分指定标识,表示变量或函数的唯一标识名称。这和语言的语法有一定的关系。

声明符是否是间接的,因为它们没有像direct-declarator中那样指定为直接的?

c syntax programming-languages declaration variable-declaration

5
推荐指数
1
解决办法
285
查看次数