小编Ras*_*man的帖子

将C++类转换为C结构(以及更高版本)

过去几天我一直在"降级"> 1000个C++代码到C语言.直到现在一直很顺利.突然间我和一个班级面对面......

编译器首先在头文件中指出了错误:

class foobar {
    foo mutex;
public:
    foobar() {
        oneCreate(&mutex, NULL);
    }
    ~foobar() {
        oneDestroy(mutex);
        mutex = NULL;
    }
    void ObtainControl() {
        oneAcquire(mutex);
    }
    void ReleaseControl() {
        oneRelease(mutex);
    }
};
Run Code Online (Sandbox Code Playgroud)

当然,C文件必须利用这一点

foobar fooey;
fooey.ObtainControl();
Run Code Online (Sandbox Code Playgroud)

我甚至不知道从哪里开始....帮助?

c c++ struct class

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

在C中为GSL传递void类型的double数组

我正在尝试使用GSL库来解决ODE,我在使用void指针时遇到了一些困难

我需要在一个应该包含一个数组数组的参数上发送一个参数:

double k1[2][4];
Run Code Online (Sandbox Code Playgroud)

哪个被发送到

gsl_odeiv_system sys = {func, jac, 2, &k1};
Run Code Online (Sandbox Code Playgroud)

这被传递到这两个FUNC江淮*params

int func (double t, const double y[], double f[], void *params)
Run Code Online (Sandbox Code Playgroud)

在func中,我试图通过以下方式提取k1:

double k1[2][4];
k1 = *(double[][])params;
Run Code Online (Sandbox Code Playgroud)

要么

k1 = (double[][])params;
Run Code Online (Sandbox Code Playgroud)

要么...

k1 = *(double *)params;
Run Code Online (Sandbox Code Playgroud)

等等

我想问题是:有一个单行解决方案吗?

c arrays pointers gsl

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

在等待计算/处理数据时使用UIAlertView

我已经在选项卡布局中设置了我的iphone应用程序,并且当用户选择其中一个选项卡时,我想执行一些相当强烈的计算(可能需要几秒钟才能得到结果).

最初,看起来iphone会在进行数字运算时挂在原始选项卡上.

我尝试添加一个UIAlertView作为一些令人眼花缭乱的东西,但我得到一个淡灰色几秒钟,然后在计算完成后,View快速出现/消失.我想看到的是当用户触摸标签时UIAlertView出现/动画,然后在计算完成后消失

- (void)viewDidAppear:(BOOL)animated
{    


    UIAlertView *baseAlert = [[[UIAlertView alloc] initWithTitle:@"Calculating" message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:nil, nil]autorelease];
    [baseAlert show];
    UIActivityIndicatorView *aiv = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
    aiv.center = CGPointMake(baseAlert.bounds.size.width /2.0f, baseAlert.bounds.size.height - 40.0f);
    [aiv startAnimating];
    [baseAlert addSubview:aiv];
    [aiv release];


/*** calculation and display routines***/


    [baseAlert dismissWithClickedButtonIndex:0 animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

我已经看过这篇文章,但我似乎无法弄清楚如何将它应用到我的案例中.

iphone uialertview

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

在循环外使用生成器

相对较新的python所以请原谅新手问题,但谷歌目前没有帮助.

我有100个非常大的xlsx文件,我需要从中提取第一行(特别是单元格A2).我找到了一个名为openpyxl的工具的宝石,它将遍历我的数据文件,而不会将所有内容都加载到内存中.它使用generaotor来获得每次调用的相关行

我无法得到的是如何在循环外初始化生成器.现在我的代码是:

from openpyxl import load_workbook
wb = load_workbook(filename = "merged01.xlsx", use_iterators= True)
sheetName = wb.get_sheet_names()
ws = wb.get_sheet_by_name(name = sheetName[0])
row = ws.iter_rows() #row is a generator
for cell in row:
    break
print (cell[1].internal_value) # A2
Run Code Online (Sandbox Code Playgroud)

但必须有更好的方法来做到这一点,例如:

...
row = ws.iter_rows() #row is a generator
cell = row.first # line I'm trying to KISS
print (cell[1].internal_value) # A2
Run Code Online (Sandbox Code Playgroud)

python generator python-3.x

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

我需要多线程来完成这个项目吗?

目标平台: Windows XP高中计算机

需要的库: SFML,GLEW,ODE,Python(用于嵌入)

计划的功能让我相信我可能需要多线程:

  1. 多达一百个机器人全部实时解释python脚本.
  2. 所有机器人及其组件在物理模拟中与其环境相关.
  3. 在玩家周围的大部分中生成详细的环境.
  4. 游戏运行时可能需要将文件写入硬盘.
  5. (除了这些功能,目标平台让我担心)

我需要多线程来完成这个项目吗?

c++ python multithreading sfml ode-library

-1
推荐指数
1
解决办法
206
查看次数