相关疑难解决方法(0)

"静态"在C中意味着什么?

static在C代码中看到了不同地方使用的单词; 这就像C#中的静态函数/类(其中实现是跨对象共享的)?

c syntax static

1062
推荐指数
15
解决办法
86万
查看次数

C++中静态与C++中静态之间的区别?

C和C++中的static关键字有什么区别?

c c++

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

线程安全实例化单例

使用哪种同步方法来确保单例仍然是单例?

+(Foo*)sharedInstance
{
   @synchronized(self)
   {
      if (nil == _sharedInstance)
      {
         _sharedInstance = [[Foo alloc] init];
         ...
      }
   }
   return _sharedInstance;
}
Run Code Online (Sandbox Code Playgroud)

还是使用互斥?

#import <pthread.h>

static pthread_mutex_t _mutex = PTHREAD_MUTEX_INITIALIZER;

+(Foo*)sharedInstance
{
   pthread_mutex_lock(&_mutex);
   if (nil == _sharedInstance)
   {
      _sharedInstance = [[Foo alloc] init];
      ...
   }
   pthread_mutex_unlock(&_mutex);
   return _sharedInstance;
}
Run Code Online (Sandbox Code Playgroud)

嗯..对此有何评论?

singleton multithreading memory-management objective-c thread-safety

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

C:静态结构

我是C的新手,我正在查看一些代码来了解哈希.

我遇到了一个包含以下代码行的文件:

#include <stdio.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>

#include <time.h>
#include <sys/time.h>

// ---------------------------------------------------------------------------

int64_t timing(bool start)
{
    static      struct timeval startw, endw; // What is this?
    int64_t     usecs   = 0;

    if(start) {
        gettimeofday(&startw, NULL);
    }
    else {
        gettimeofday(&endw, NULL);
        usecs   =
               (endw.tv_sec - startw.tv_sec)*1000000 +
               (endw.tv_usec - startw.tv_usec);
    }
    return usecs;
}
Run Code Online (Sandbox Code Playgroud)

我之前从未遇到过以这种方式定义的静态结构.通常,struct前面是struct的定义/声明.但是,这似乎表明将存在类型为timeval,startw,endw的静态struct变量.

我试图阅读它的作用,但还没有找到足够好的解释.有帮助吗?

c struct

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