小编vds*_*dsf的帖子

UTF-8和Unicode,0xC0和0x80是什么?

我在过去几天一直在阅读有关Unicode和UTF-8的内容,我经常遇到类似于此的逐点比较:

int strlen_utf8(char *s) 
{
  int i = 0, j = 0;
  while (s[i]) 
  {
    if ((s[i] & 0xc0) != 0x80) j++;
    i++;
  }
  return j;
}
Run Code Online (Sandbox Code Playgroud)

有人可以澄清与0xc0的比较并检查它是否是最重要的位?

谢谢!

编辑:ANDED,而不是比较,使用了错误的单词;)

unicode utf-8

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

Jenkins/Hudson - 如何以超过1级深度并行运行多个作业?

我正试图在Jenkins中并行运行以下工作流程.例如,A和B同时运行.A一完成同时运行A2和A3等等......

这似乎是一个非常常见的用例,但我尝试过的大多数插件都不支持超过1级深度,下面的A分支就是这种情况.加入插件在这里似乎没有帮助.

读到了有关使用Promotion插件的内容,但是我对有关指纹/工件的归档以使其工作有点神秘感.

关于如何使这个简单的构建管道工作的任何线索?

流

continuous-integration hudson build jenkins jenkins-plugins

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

Makefile - 如何调用具有依赖项的其他makefile

嘿,我有一个简单的"主"Makefile,只需调用其他makefile.我正在尝试执行以下操作,以便按正确的顺序构建组件:

LIB_A = folder_a
LIB_B = folder_b
LIB_C = folder_c

MY_TARGETS = $(LIB_A) $(LIB_B) $(LIB_C)

.PHONY: $(LIB_A)
$(LIB_A):
    @$(MAKE) -C $@;

.PHONY: $(LIB_B)
$(LIB_B):
    @$(MAKE) -C $@;

.PHONY: $(LIB_C)
$(LIB_C): $(LIB_A) $(LIB_B)
    @$(MAKE) -C $@;

.PHONY: all 
all: $(MY_TARGETS)
Run Code Online (Sandbox Code Playgroud)

但是,当我制作时,只构建LIB_A.

(我甚至没有获得folder_b最新消息或其他什么).

任何提示?

makefile

7
推荐指数
2
解决办法
7938
查看次数

C++ - 具有下限/上限的圆形数组?

我想创建一个类似于双链表(但有数组)的东西,它与下限/上限一起使用.

典型的圆形阵列可能看起来像:

next = (current + 1) % count;
previous = (current - 1) % count;
Run Code Online (Sandbox Code Playgroud)

但是,将下限/上限正确地纳入其中的数学运算是什么?

  • 0(下界第1项)
  • 1
  • 2(上限项目1)
  • 3(下界第2项)
  • 4(上限项目2)

以便:

- >索引2上的下一个项目1返回0

- >上一个索引0,项目1返回2

- >对于项目2,索引4上的下一步返回3

- >上一个索引3,项目2返回4

谢谢 !

注意:不能使用外部库.

c c++ math

5
推荐指数
2
解决办法
4767
查看次数

将std :: ostringstream写入文件而不复制?

给定一个以输出字符串流作为参数的函数:

void Foo(const std::ostringstream& _oss);
Run Code Online (Sandbox Code Playgroud)

有数据写入流缓冲到一个文件中的任何方式WITHOUT不必调用STR()?

我想避免复制缓冲区(str()会这样做).

void Foo(const std::ostringstream& _oss);
{
  std::ofstream f("foo.bin");

  //WANT: write _oss to f without copying the buffer?
}
Run Code Online (Sandbox Code Playgroud)

c++ io

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

Objective-C引用计数和自动释放

嘿伙计们,假设以下代码:

int main (int argc, const char * argv[]) 
{
//[...]
    Rectangle* myRect  = [[Rectangle alloc] init];

    Vector2* newOrigin = [[[Vector2 alloc] init] autorelease]; // ref count 1

    [newOrigin setX: 50.0f];
    [myRect setOrigin: newOrigin];    // ref count 2

    [myRect.origin setXY: 25.0f :100.0f]; // ref count goes to 3... why ?

    [myRect release];

    [pool drain];
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Rectangle的原点被声明为(retain)合成属性.只是想知道两件事:

  1. 为什么在使用Rectangle的原点的getter访问器时ref count会变为3?难道我做错了什么 ?
  2. 如果引用计数为3,我不明白这段代码是如何泄漏的.在myRect上调用release将使它降至2,因为我在dealloc()中调用了origin的发布.但是,自动释放什么时候生效?

谢谢!

memory-management objective-c

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