小编mik*_*yra的帖子

Nagios(返回代码255超出范围)

我在http:// localhost/nagios上收到错误(返回代码255超出范围)

但是当我从shell运行命令时,它运行正常

nagios

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

vala:参数指示 - value-type out参数的自动空值检查

问题:

我实际上在使用Vala/Tutorial网站上宣传的关于输出参数声明的看似很好的功能时遇到了问题.

这里的引用来自:https://live.gnome.org/Vala/Tutorial#Parameter_Directions

以下是如何实现method_1()的示例:

void method_1(int a, out int b, ref int c) {
    b = a + c;
    c = 3; }
Run Code Online (Sandbox Code Playgroud)

将值设置为out参数"b"时,Vala将确保"b"不为空.因此,如果您对此值不感兴趣,则可以安全地传递null作为method_1()的第二个参数.

看一下生成的C代码,很明显,与上面提出的声明相矛盾,而不是在赋值之前进行检查,而是可以很好地取消引用可能的NULL指针.

void method_1 (gint a, gint* b, gint* c) {
    *b = a + (*c);
    *c = 3;
}
Run Code Online (Sandbox Code Playgroud)

我期望的代码将采用这种形式:

void method_1 (gint a, gint* b, gint* c) {
    if (b != NULL)
      *b = a + (*c);
    *c = 3;
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我发现的唯一解决方法是抛弃整个参数声明,直接用指针代替.

void method_1 (gint a, int* b, ref int c) { …
Run Code Online (Sandbox Code Playgroud)

pointers parameter-passing vala

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

标签 统计

nagios ×1

parameter-passing ×1

pointers ×1

vala ×1