标签: static-variables

在C中,在函数中使用静态变量会使它更快吗?

我的功能将被召唤数千次.如果我想让它更快,将局部函数变量更改为静态是否有用?我背后的逻辑是,因为静态变量在函数调用之间是持久的,所以它们仅在第一次分配时,因此,每个后续调用都不会为它们分配内存并且会变得更快,因为内存分配步骤没有完成.

此外,如果上述情况属实,那么使用全局变量而不是参数会更快地在每次调用时将信息传递给函数吗?我认为参数的空间也分配在每个函数调用上,以允许递归(这就是递归占用更多内存的原因),但由于我的函数不是递归的,如果我的推理是正确的,那么理论上取下参数它更快.

我知道我想要做的这些事情是可怕的编程习惯,但请告诉我它是否明智.无论如何我会试一试,但请告诉我你的意见.

c memory-management global-variables local-variables static-variables

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

在全局范围内使用静态变量和函数

标记变量是否有用static,当它位于.cpp文件的全局范围内时,不在函数中?

你也可以将static关键字用于函数吗?如果是的话,它们的用途是什么?

c++ static global global-variables static-variables

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

是引用该库的所有进程共享的库(DLL)中的静态变量吗?

我知道Web应用程序中使用的静态变量是为Web应用程序中的所有用户共享的.如果我有一个使用某个静态私有变量的库(DLL),那么使用该库的所有应用程序是否共享该变量的值?

例如,假设我的DLL中有以下代码:

private static bool isConnected = false;

public static void Connect()
{
    // TODO: Connect.
    isConnected = true;
}

public static void Disconnect()
{
    // TODO: Disconnect.
    isConnected = false;
}
Run Code Online (Sandbox Code Playgroud)

然后,在应用程序A,我把myDLL.Connect()它设置的值isConnectedTrue.然后我有一些应用程序B执行相同的操作.如果应用程序稍后调用myDLL.Disconnect(),并应用B见isConnectedFalse,因为这两个应用程序共享同一个静态变量相同的DLL文件?在这种情况下,DLL文件在同一文件路径中实际上是相同的文件.

(我之前在这里问了一个关于Web应用程序的类似问题.它没有关系.)

c# dll static static-variables static-libraries

21
推荐指数
1
解决办法
6014
查看次数

局部变量设置为nil?(目标C)

我正在读一本关于Objective-C的书,作者说如果局部变量没有赋值,它们将被设置为nil,但静态变量将被设置为零.所以,我设置int a并没有给它赋值.然后NSLog(@"%i", a)显示它并a显示为零.我对此感到有些困惑,我想知道是否有人可以为我澄清一下?

null objective-c instance-variables static-variables

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

静态与实例变量:差异?

静态变量和实例变量之间有什么区别.以下句子是我无法得到的:

在某些情况下,类的所有对象只应共享特定变量的一个副本 - 这里使用静态变量.
静态变量表示类范围信息.类的所有对象共享相同的数据.

我认为实例变量是使用类宽,而静态变量只在自己的方法中有范围?

java class instance-variables static-variables

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

R中的静态变量

我在R中有一个我多次调用的函数.我想跟踪我调用它的次数,并使用它来决定在函数内部做什么.这就是我现在所拥有的:

f = function( x ) {
   count <<- count + 1
   return( mean(x) )
}

count = 1
numbers = rnorm( n = 100, mean = 0, sd = 1 )
for ( x in seq(1,100) ) {
   mean = f( numbers )
   print( count )
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢我必须在函数范围之外声明变量count.在C或C++中,我可以创建一个静态变量.我可以用R编程语言做类似的事情吗?

closures r static-variables

18
推荐指数
2
解决办法
6323
查看次数

Google App Engine:Memcache还是Static变量?

好吧,我想我在这里有一个非常基本的疑问:

我正在开发一个关于GAE(Java)的应用程序,并对返回大量实体的数据存储区执行查询,因此我需要对其进行缓存.我使用的是memcache并且工作得很好,但是如果我将实体列表保存在静态变量中,整个请求的速度是使用memcache的两倍.我认为那是因为我不是一直在反序列化实体.

在memcache上使用静态变量会有什么缺点?我不知道我的应用程序在云中是否有多个实例,因此我的静态变量的几个实例?

我正在尝试缓存的实体列表是上周的最佳(更高分)帖子.我拿这个列表并选择5个随机帖子并在几页中显示它们.

谢谢您的帮助!

java google-app-engine memcached static-variables google-cloud-datastore

18
推荐指数
2
解决办法
6490
查看次数

PHP中的静态函数变量和连接

考虑以下:

$var = 'foo' . 'bar'; # Not a member of a class, free-standing or in a function.
Run Code Online (Sandbox Code Playgroud)

然而,只要我标记$varstatic:

static $var = 'foo' . 'bar';
Run Code Online (Sandbox Code Playgroud)

PHP(WAMP设置上的5.3.1)抱怨以下错误:

解析错误:语法错误,意外'.',期待','或';'

似乎字符串连接是这里的罪魁祸首.


这里发生了什么?有人可以向我解释静态变量的规则吗?

php string concatenation static-variables

18
推荐指数
2
解决办法
6597
查看次数

18
推荐指数
2
解决办法
7029
查看次数

从静态方法访问静态变量

我想从静态方法访问静态变量:

#!/usr/bin/env python
class Messenger:
    name = "world"
    @staticmethod
    def get_msg(grrrr):
        return "hello " + grrrr.name

print Messenger.get_msg(Messenger)
Run Code Online (Sandbox Code Playgroud)

没有传递grrrr给方法怎么做?这是真正的OOP吗?

任何喜欢nameself.name似乎不起作用的东西:

NameError: global name 'name' is not defined
Run Code Online (Sandbox Code Playgroud)

NameError: global name 'self' is not defined
Run Code Online (Sandbox Code Playgroud)

python oop static-methods static-variables

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