相关疑难解决方法(0)

ANSI-C中的静态意味着什么

可能重复:
C程序中"静态"是什么意思?

static关键字在C 中的含义是什么?

我正在使用ANSI-C.我在几个代码示例中看到,它们static在变量前面和函数前面使用关键字.使用变量的目的是什么?使用函数的目的是什么?

c static keyword ansi-c

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

C和C++中静态变量初始化的区别

我正在浏览http://geeksforgeeks.org/?p=10302上的代码

#include<stdio.h>
int initializer(void)
{
    return 50;
}

int main()
{
    static int i = initializer();
    printf(" value of i = %d", i);
    getchar();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码不会在C中编译,因为静态变量需要在main()启动之前初始化.那样就好.但是这段代码在C++编译器中编译得很好.

我的问题是,当静态在两种语言中具有相同的用法时,为什么它在C++编译器中编译.当然编译器对于这些语言会有所不同,但我无法确定原因.如果在标准中指定,我很想知道.

我在SO上搜索了这个问题,找到了3个类似的链接但是徒劳无功. Link1 Link2 Link3

谢谢你的帮助.

c c++ static

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

静态的不同语言

我听说关于关键字含义的语言之间存在差异static,但我没有找到一个合并这些差异的好列表.

以下是我对staticC++中的含义的了解:

  • 对于函数内的局部静态变量,变量在启动时初始化,并且值跨函数调用保存.
  • 静态数据成员在类的所有实例之间共享.换句话说,只有一个静态数据成员的实例.必须在文件范围初始化静态数据成员.
  • 静态成员函数只能访问静态成员.
  • 在递归代码中,保证静态对象或变量在代码块的不同实例中具有相同的状态.
  • 在文件范围定义的静态对象和变量仅具有内部链接.没有其他文件可以使用它们.

static其他语言的变化意义如何?

static programming-languages keyword

4
推荐指数
2
解决办法
5367
查看次数

为什么静态字段被称为"静态"?

在"静态变量"或"静态方法"中使用"静态"一词的原因是什么?

不是要求"静态" 的定义,只是问它为什么这么称呼.

java

4
推荐指数
2
解决办法
872
查看次数

如何使用类方法分发UIManagedDocument的多个共享实例?

我有一个帮助程序类,它分发UIManagedDocument的共享实例.这个想法是用户为磁盘上的特定文件请求UIManagedDocument共享实例.在这种情况下,它是一个核心数据存储.如果用户请求位于不同路径的核心数据存储,我想为该文件分发UIManagedDocument实例.

我的问题是:创建UIManagedDocument的新实例并在文件更改时将其分配给静态变量是否可以?例如:

+ (UIManagedDocument *)sharedManagedDocumentForFile:(NSString *)fileName
{
    static UIManagedDocument *sharedDocument = nil;

    NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
    url = [url URLByAppendingPathComponent:fileName];
    // url is "<Documents Directory>/<vacationName>"

    // Create the shared instance lazily upon the first request.
    if (sharedDocument == nil) {
        sharedDocument = [[UIManagedDocument alloc] initWithFileURL:url];
    }

    if (sharedDocument.fileURL != url) {
        UIManagedDocument *newDocument = [[UIManagedDocument alloc] initWithFileURL:url];
        sharedDocument = newDocument;
    }

    return sharedDocument;
}
Run Code Online (Sandbox Code Playgroud)

基本上我要做的只是分发UIManagedDocument的一个实例,所以如果核心数据存储有多个编写器,我不必经常保持更改同步.但是,由于磁盘上有多个核心数据存储,因此我不能每次都分配相同的静态变量.

有任何想法吗?我完全坚持甚至如何处理这个设计问题......任何帮助都表示赞赏.

谢谢 - 杰克

iphone static objective-c ios ios5

4
推荐指数
1
解决办法
668
查看次数

标签 统计

static ×4

c ×2

keyword ×2

ansi-c ×1

c++ ×1

ios ×1

ios5 ×1

iphone ×1

java ×1

objective-c ×1

programming-languages ×1