小编Alb*_*ore的帖子

功能正常,但返回垃圾

我有这个功能:

float calc_nnc(struct ImageWindow *window1, struct ImageWindow *window2) {
    /* More code */
    double numerator = (double) sum_a_x_b;
    double divisor = ( sqrt(sum_a) * sqrt(sum_b) );
    double result = numerator / divisor;
    float resultf = (float) result;

    printf("numerator: %lf, divisor: %lf, result: %lf, resultf: %f\n",
        numerator, divisor, result, resultf);

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

printf打印结果我期望看到:

axb = 1383,a = 1776,b = 4959
分子:1383.000000,除数:2967.690011,结果:0.466019,结果:0.466019

但是,当我尝试打印calc_nnc另一个函数的结果时:

float nnc_likeness;
unsigned int x, y;

for (y = 0; y <= y_max; y++) …
Run Code Online (Sandbox Code Playgroud)

c floating-point function return-value

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

在C的pthread中优雅地杀死一个阻塞线程?

假设我有一个类似这样的话题:

void my_thread(char *device_name) {
    int fd = open(device_name, O_RDONLY);
    struct input_event ev;

    while(1) {
        read(fd, &ev, sizeof(struct input_event));
        /* do something */
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎么停止这样的线程?一种方法是使用pthread_cancel,但我宁愿更优雅地做.还是喜欢pthread_kill什么?但是,在这种情况下,read方法是否会阻塞(正如我所假设的那样)以及线程如何处理信号?或者是应该处理它的过程?

我非常感谢你的建议!

c multithreading pthreads blocking

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

Rails 3中的显式需求

我正在将我的Rails 2应用程序转换为Rails 3.到目前为止,我已经成功了.但是,有一个奇怪的问题,我必须明确要求任何外部文件.这是我原来的(即Rails 2)ActiveRecord模型:

class Book < ActiveRecord::Base
  belongs_to :author
  has_many :translations, :dependent => :destroy
  include Freebase
...
end
Run Code Online (Sandbox Code Playgroud)

为了使它在Rails 3中工作,我必须要求模型TranslationFreebase.rb文件,因此:

class Book < ActiveRecord::Base
  require File.expand_path(File.dirname(__FILE__) + '/translation.rb')
  belongs_to :author
  has_many :translations, :dependent => :destroy
  require File.expand_path(File.dirname(__FILE__) + '../../../lib/freebase.rb')
  include Freebase
  ...
end
Run Code Online (Sandbox Code Playgroud)

这是Rails 3中的正常方式,还是我做错了什么.换句话说,为什么有必要明确包含这些文件?Freebase.rb文件可能有一些原因放在lib文件夹中,但是同一个目录中的Translation模型呢?

多谢你们!

ruby-on-rails upgrade require

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

在XML文件中设置编码

哪些是有效的xml编码字符串?例如,指定UTF-8的方式是什么:

  • encoding="utf8"
  • encoding="utf8"
  • 等等

或Windows 1251:

  • encoding="windows-1251"
  • encoding="windows1251"
  • encoding="cp-1251"
  • 等等

我正在制作一个字符解码器以及一个xml解析器.因此,我需要能够根据encoding属性中的值设置StreamReader的编码.

我能找到官方编码字符串列表的任何想法?

我能找到的最好的是这个,但它似乎是IE特有的.

谢谢!

xml encoding

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

使用OpenGL调整图像大小

我想使用OpenGL调整图像大小.我更喜欢Java,但C++也没问题.

我对整个事情都很陌生,所以这就是我所看到的文字过程:

  1. 将图像作为纹理加载到OGL中
  2. 设置一些关于状态和过滤的东西
  3. 将不同大小的纹理绘制到另一个纹理上
  4. 将纹理数据转换为数组或其他内容

您认为使用OpenGL和GPU比使用基于CPU的BLIT库更快吗?

谢谢!

c++ java opengl rendering resize

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

如何在OpenGL ES 1.0中使用`glTexEnv`,`glColor4x`和`glBlendFunc`?

我正在看SurfaceFlinger,即在Android中进行组合的代码,我无法理解一些OpenGL ES 1.0调用,因为我只编写了ES 2.0代码.

以下是我感兴趣的代码:

glTexEnvx(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glColor4x(0x10000, 0x10000, 0x10000, 0x10000);
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
Run Code Online (Sandbox Code Playgroud)

应该做的是将纹理混合到缓冲区中.

为什么需要glTextEnvxglColor4x电话?glBlendFunc实现混合还不够?

知道我的问题是天真的,但我仍然不明白glTexEnvx在阅读文档之后是什么.

android textures alphablending opengl-es

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

编译C文件时出现有趣的错误消息

嗯,我对C有点新,所以我想知道为什么在编译这行时它会给我以下错误信息:

   void (ESCALLBACK *drawFunc) ( void* );
   void (ESCALLBACK *keyFunc) ( void*, unsigned char, int, int );
Run Code Online (Sandbox Code Playgroud)

对于第一行,它给了我:

  error: expected ‘)’ before ‘*’ token
Run Code Online (Sandbox Code Playgroud)

而对于第二个:

  error: expected ‘;’ before ‘void’
Run Code Online (Sandbox Code Playgroud)

我很可能没有给你足够的信息,但目前我想知道为什么会打印这样的错误信息.我的意思是,他们看起来并不是很有帮助,我认为他们甚至没有接近真正的问题.

对不起,如果我听起来很傻,我是一个Java开发学习C.

谢谢!

c compilation

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

使用android ndk调试内存损坏

我在我的android应用程序的本机部分中获得了一个段错误,此时void函数返回其调用者.为了更好地可视化,我在被调用者函数的末尾添加了一个日志语句,在调用者函数的一个函数中,在调用被调用者之后(对于双关语抱歉).在logcat中,打印第一条消息,第二条消息打印(应用程序崩溃).

考虑到可能的内存损坏我决定激活malloc debug(在adb shell中给出"setprop libc.debug.malloc 10").然后,我在来自被调用函数结束的日志消息之后的logcat中得到这个:

D/MyApp - NativeSide(12778):  I am the callee function and I am about to return!
E/libc    (12778): *** FREE CHECK: buffer 0x82869900 corrupted 16 bytes before allocation
E/libc    (12778): call stack:
E/libc    (12778):  0: 8000e3ea
E/libc    (12778):  1: 8000e49c
E/libc    (12778):  2: 8000e4e2
E/libc    (12778):  3: 8000e540
E/libc    (12778):  4: afd14ccc
E/libc    (12778):  5: 81258188
E/libc    (12778):  6: 81258188
E/libc    (12778):  7: 81258188
E/libc    (12778):  8: 81258188
E/libc    (12778):  9: 81258188
E/libc    (12778): 10: 81258188 …
Run Code Online (Sandbox Code Playgroud)

memory memory-management android-ndk

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

遇到DOM节点和instanceof问题

好的,我有一个小功能像这样走在树上:

function walkTree(node, func, args) {
    func(node, args);
    node = node.firstChild;
    while (node) {
        walkTree(node, func, args);
        node = node.nextSibling;
    }
}
Run Code Online (Sandbox Code Playgroud)

而另一个只拾取文本节点的函数如下:

function selectTextNodes(node, nodes) {
    if (node instanceof Text) {
        nodes.push(node);
    }
}
Run Code Online (Sandbox Code Playgroud)

最后,使用两者:

texts = [];
walkTree(body, selectTextNodes, texts);
Run Code Online (Sandbox Code Playgroud)

但是,它根本没有填写清单!

如果我要修改测试使用Node.nodeType它将工作:

function selectTextNodes(node, nodes) {
    if (node.nodeType == Node.TEXT_NODE) {
        nodes.push(node);
    }
}
Run Code Online (Sandbox Code Playgroud)

另一方面,在控制台中它可以双向工作:

t = window.document.createTextNode("test");
r = (t.nodeType == Node.TEXT_NODE) && (t instanceof Text);
Run Code Online (Sandbox Code Playgroud)

也就是说,r是真的.

请注意,所有函数都嵌套在另一个接收body变量的函数中.就我而言,这是contentDocument.body一个iframe.没有应用x域限制.

知道发生了什么事吗?

javascript dom

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

将AFNetworking添加到新项目中会出错

我创建了一个新项目,我只是将AFNetworking文件夹拖放到我的项目中,当我运行项目时,我收到了以下错误:

/Users/nadirahmed/Documents/iOS/afnet1/AFNetworking/AFNetworkReachabilityManager.h:40:1: Unknown type name 'NS_ASSUME_NONNULL_BEGIN'

/Users/nadirahmed/Documents/iOS/afnet1/AFNetworking/AFNetworkReachabilityManager.h:51:1: Cannot combine with previous '(error)' declaration specifier

/Users/nadirahmed/Documents/iOS/afnet1/AFNetworking/AFNetworkReachabilityManager.h:80:4: Pointer is missing a nullability type specifier (__nonnull or __nullable)
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

  • 我清理了这个项目
  • 试图将图书馆拖放到项目的不同区域
  • 去了产品,建立

iphone objective-c ios

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