我有这个功能:
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) 假设我有一个类似这样的话题:
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方法是否会阻塞(正如我所假设的那样)以及线程如何处理信号?或者是应该处理它的过程?
我非常感谢你的建议!
我正在将我的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中工作,我必须要求模型Translation和Freebase.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模型呢?
多谢你们!
哪些是有效的xml编码字符串?例如,指定UTF-8的方式是什么:
encoding="utf8"encoding="utf8"或Windows 1251:
encoding="windows-1251"encoding="windows1251"encoding="cp-1251"我正在制作一个字符解码器以及一个xml解析器.因此,我需要能够根据encoding属性中的值设置StreamReader的编码.
我能找到官方编码字符串列表的任何想法?
我能找到的最好的是这个,但它似乎是IE特有的.
谢谢!
我想使用OpenGL调整图像大小.我更喜欢Java,但C++也没问题.
我对整个事情都很陌生,所以这就是我所看到的文字过程:
您认为使用OpenGL和GPU比使用基于CPU的BLIT库更快吗?
谢谢!
我正在看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)
应该做的是将纹理混合到缓冲区中.
为什么需要glTextEnvx和glColor4x电话?glBlendFunc实现混合还不够?
我知道我的问题是天真的,但我仍然不明白glTexEnvx在阅读文档之后是什么.
嗯,我对C有点新,所以我想知道为什么在编译这行时它会给我以下错误信息:
void (ESCALLBACK *drawFunc) ( void* );
void (ESCALLBACK *keyFunc) ( void*, unsigned char, int, int );
Run Code Online (Sandbox Code Playgroud)
对于第一行,它给了我:
Run Code Online (Sandbox Code Playgroud)error: expected ‘)’ before ‘*’ token
而对于第二个:
Run Code Online (Sandbox Code Playgroud)error: expected ‘;’ before ‘void’
我很可能没有给你足够的信息,但目前我想知道为什么会打印这样的错误信息.我的意思是,他们看起来并不是很有帮助,我认为他们甚至没有接近真正的问题.
对不起,如果我听起来很傻,我是一个Java开发学习C.
谢谢!
我在我的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) 好的,我有一个小功能像这样走在树上:
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域限制.
知道发生了什么事吗?
我创建了一个新项目,我只是将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)
这是我尝试过的:
c ×3
android ×1
android-ndk ×1
blocking ×1
c++ ×1
compilation ×1
dom ×1
encoding ×1
function ×1
ios ×1
iphone ×1
java ×1
javascript ×1
memory ×1
objective-c ×1
opengl ×1
opengl-es ×1
pthreads ×1
rendering ×1
require ×1
resize ×1
return-value ×1
textures ×1
upgrade ×1
xml ×1