小编rat*_*ath的帖子

传递`*`时命令行参数号不正确

我正在编写一个关于反向波兰表示法的C程序,它通过命令行参数获取操作数和运算符.但是当乘法运算符'*'出现时出现问题,我不知道为什么.
这是要调试的小程序.

test.c的

int main(int argc, char **argv)
{
    printf("%d\n", argc);
    return 0;
}

//   run case           result
    ./test a b            3
    ./test *              66
Run Code Online (Sandbox Code Playgroud)

那么为什么' * '论证会产生错误的结果呢?

c shell command-line-arguments

6
推荐指数
2
解决办法
1085
查看次数

我可以从Windows 8.1中删除Windows App Store吗?

我被赋予了从全新的Acer笔记本电脑中删除英国媒体报道的任务.我(以及笔记本电脑所有者)对英国媒体报道软件的定义包括所有预安装的应用程序和Winstore本身.你可能不同意这一点,但那不是重点.

remove-appxpackage使用Winstore的ID 尝试了Powershell命令并出现错误,其中重要的部分是

此应用是Windows的一部分,无法基于每个用户进行卸载.管理员可以尝试使用"打开或关闭Windows功能"从计算机中删除该应用程序.但是,可能无法卸载该应用程序.

我没有在Windows功能菜单中看到任何此类选项.可以从Win8.1中删除Winstore吗?


这是完整的错误消息(供参考):

remove-appxpackage : Deployment failed with HRESULT: 0x80073CFA, Removal failed. Please contact your software vendor.
(Exception from HRESULT: 0x80073CFA)
error 0x80070032: AppX Deployment Remove operation on package winstore_1.0.0.0_neutral_neutral_cw5n1h2txyewy from:
C:\Windows\WinStore failed. This app is part of Windows and cannot be uninstalled on a per-user basis. An
administrator can attempt to remove the app from the computer using Turn Windows Features on or off. However, it may
not be possible to …

powershell uninstall windows-store windows-8.1

6
推荐指数
1
解决办法
2893
查看次数

Terraform-删除除一个以外的所有资源

我有一个Terraform 0.11项目,其中包含30-40种不同的资源。我想删除所有的人,但只有少数人-这些人在逻辑上是相互关联的。

我一直在寻找接近的东西,terraform destroy --except=resource-id但是那当然不存在。

有没有一种方法可以在没有太多脚本的情况下实现这一目标(Terraform管理员拥有各种操作系统)?使用模块会使该过程更容易吗?

infrastructure terraform terraform-provider-aws

6
推荐指数
3
解决办法
1990
查看次数

Weka中的布尔属性

是否可以在WEKA中实现布尔属性?

我想实施一个市场篮子分析,为此我需要一个这样的表

Product_A Prod_B
Yes       No
No        Yes
Yes       Yes
Run Code Online (Sandbox Code Playgroud)

等等.

对于No,或者false,我可以使用?,代表WEKA中的空值:

Product_A Prod_B
Yes       ?
?         Yes
Yes       Yes
Run Code Online (Sandbox Code Playgroud)

但现在我得到了频率.项目集和规则如:

Product_A=Yes, Prod_B=Yes
Run Code Online (Sandbox Code Playgroud)

但我只想拥有

Product_A, Prod_B.
Run Code Online (Sandbox Code Playgroud)

你懂我的意思吗?

我找到了一个关于创建ARFF文件的指南,但是没有任何boolean-datatype ..但是有这样的数据类型会有用,还是我认为错了?

data-mining weka arff

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

如何避免转义 WebTarget 查询参数?

我想关闭 Jersey 请求或某些参数的 URL 编码。

我正在与之交谈的服务器需要以下格式 example.com/path?query=foo:bar

使用 Jackson WebTarget,

final WebTarget target = ClientBuilder.newClient()
    .target(url)
    .queryParam("query", "{queryVal}")
    .resolveTemplate("queryVal", "foo:bar");
Run Code Online (Sandbox Code Playgroud)

可悲的是,这会产生example.com/path?query=foo bar服务器不接受的结果。

我为此搜索了很多,唯一有希望的途径似乎与 有关javax.ws.rs.core.Configuration,但我还没有深入了解。

java urlencode jersey request java-8

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

使用OpenMP块来破坏缓存

我一直在努力提高我的OpenMP解决方案的性能,这通常需要处理数组上的嵌套循环.虽然我已经设法从串行实现的59秒(在老化的双核Intel T6600上)将其降低到37,但我担心缓存同步会引起很多CPU注意(当CPU应该解决我的问题时! ).我一直在努力设置探查器,所以我没有证实这个说法,但我的问题无论如何.根据这个关于负载均衡的讲座:

CPU没有做好工作,而是忙着争夺程序中唯一使用过的缓存行.您可以使用一种非常奇怪的技术来解决这个问题:将CPU数据在内存中移动远远超过一个缓存行.例如,这里我们将每个线程访问的整数移动20个单位.

然后继续提供相关的源代码(因此应该在四核上运行%4)

#pragma omp parallel for schedule(static,1)
    for (unsigned int i=0;i<n;i++) {
    arr[(i%4)*20]++;
}
Run Code Online (Sandbox Code Playgroud)

也就是说,我对"大块"有什么直觉,但上面的实现似乎完全忽略了它,让我相信我的直觉是错误的.

我的问题是: 设置一个相当大的块值是否会将数据向下移动到缓存行?IE浏览器.上面的代码不会等同于

#pragma omp parallel for schedule(static, 20)
    for (unsigned int i=0;i<n;i++) {
    arr[i]++;
}
Run Code Online (Sandbox Code Playgroud)

c parallel-processing load load-balancing openmp

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

`restrict`关键字隐含的严格别名级别是多少?

我有以下结构:

typedef struct{
    int data[LENGTH];
}Data;
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

Data* dt=CALLOC(...)

int foo(Data* restrict d){
    for(...)
        d[i]->data[j];
    //do stuff with data[]
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:删除严格别名是否d也影响其成员或我是否需要restrict单独使用它们?换句话说,是否restrict意味着结构中包含的所有指针得到相同的处理?

编辑:通过别名级别我的意思是,如果指向结构的指针被restrict编辑,其中包含的任何其他指针也会被限制(就像我的例子一样).

c arrays struct strict-aliasing

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

为什么我不能使用默认值(共享)?

这是我的代码的大纲:

#pragma omp parallel default(shared)
{
for(i; i<lim; i++)
    do_work();
}
Run Code Online (Sandbox Code Playgroud)

过了一会儿:

do_work(){
    foo();
    bar();
}

foo(){
    #pragma omp for //etc
    for(i;i<l;i++) //your typical loop
}

bar(){ //here's the interesting part
    int i;
    int result;

    #pragma omp for reduction(+:result) private(i)
    for(i=0; i<lim; i++)
        result++;
}
Run Code Online (Sandbox Code Playgroud)

编译时我收到以下错误:

减少变量'result'在外部上下文中是私有的

这不应该发生,因为根据IBM编译器文档reduction条款

使用指定的运算符对列表中的所有标量变量执行减少.列表中的减少变量用逗号分隔.

为每个线程创建列表中每个变量的私有副本.在语句块的末尾,缩减变量的所有私有副本的最终值以适合于操作符的方式组合,并且结果被放回到共享缩减变量的原始值中.

减少条款中指定的变量:

  • 必须是适合操作员的类型.
  • 必须在封闭的上下文中共享.
  • 不能是const限定的.
  • 不能有指针类型.

强调补充说.由于外部并行区域应该处理所有变量shared,这意味着一旦发现它的减少就result应该转换为private.至少虽然它不应该private在外部范围内考虑,因为外部范围已明确告知每个变量shared.这是我困惑的根源.

当然我使用的是GCC而不是IBM编译器,但这种情况有区别吗?

所以我想我的问题是:为什么OpenMP会处理减少变量.作为私有变量,它之前被声明为在外部上下文中共享?

我只有减少这个问题,其他一切都按预期工作(特别是当有一个例子完全相同的事情).

c parallel-processing openmp

0
推荐指数
1
解决办法
2150
查看次数

如何通过ScriptEngine访问仅限静态方法的类?

我有一个Foo只有一个静态方法(注意)的类,叫做bar().我需要bar()通过运行时脚本(在这种情况下是Javascript)访问.

final ScriptEngineManager factory;
factory = new ScriptEngineManager();

factory.put("foo", new Foo());
Run Code Online (Sandbox Code Playgroud)

以上作品,但对我来说似乎有点奇怪.具体来说,我不想创建一个新的Foo.Foo是公共的,所以必须有一种方法让脚本工厂知道它,而不需要实例化一个新对象.我试过factory.put("foo", Foo.class);但是没用.我也尝试在Javascript代码中指定包,例如.

package.Foo.bar();
Run Code Online (Sandbox Code Playgroud)

但那也不起作用.

问:有没有办法从嵌入式脚本访问类的静态方法,而不将该类的实例绑定到引擎?

java scriptengine nashorn

0
推荐指数
1
解决办法
2341
查看次数