小编gja*_*ain的帖子

以下"assert_disabled()"宏如何工作?

我看到这个宏出现在代码库的许多地方,以查找特定字段是否被禁用(0或1).

#define assert_disabled(e)      ((void)sizeof(e))
Run Code Online (Sandbox Code Playgroud)

如何sizeof帮助查找字段是0还是1?

有人可以用一个有效的例子来解释这个吗

c assert sizeof

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

64位计算机上的struct alignment

我在64位Linux机器上有以下结构.

struct __wait_queue_head {
          spinlock_t lock;
          struct list_head task_list;
  };

where

typedef struct {
          raw_spinlock_t raw_lock;
  } spinlock_t;

and

struct list_head {
          struct list_head *next, *prev;
  };

raw_spinlock_t is defined as:

typedef struct {
          volatile unsigned int slock;
  } raw_spinlock_t;
Run Code Online (Sandbox Code Playgroud)

现在我想了解遵循LP64标准的64位Linux机器上struct __wait_queue_head的对齐方式.据我所知,自从这个结构的第一个领域即.

spinlock_t lock
Run Code Online (Sandbox Code Playgroud)

是一个无符号整数,在64位机器上占用4个字节,这个结构应该从一个4字节对齐的地址开始.但是,我已经看到在真实系统上并非如此.相反,结构开始于8字节对齐的地址,尽管第一个字段的对齐要求将由4字节对齐的地址满足.基本上,什么控制结构的对齐?请注意,我清楚结构中字段的填充概念.结构本身的对齐要求是我发现令人困惑的.

c 64-bit alignment

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

在R/ggplot2中绘制多个图并保存结果

我正在创建一个(gg)绘图对象列表,然后尝试在单个图中查看所有绘图.从问题:如何使用grid.arrange安排任意数量的ggplots?,以及如何使用grid.arrange排列图表的变量列表?,我希望下面的代码可以解决这个问题(跳过最后几行代码实际执行多绘图的事情).

#!/usr/bin/Rscript
library(ggplot2)
library(reshape)
library(gridExtra)
args <- commandArgs(TRUE);
# Very first argument is the directory containing modelling results
setwd(args[1])
df = read.table('model_results.txt', header = TRUE)
df_actual = read.table('measured_results.txt', header = TRUE)
dfMerge = merge(df, df_actual, by = c("Clients", "MsgSize", "Connections"))

# All graphs should be stored in the directory pointed by second argument
setwd(args[2])

# Plot the results obtained from model for msgSize = 1, 1999
# and connections = 10, 15, 20, 25, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

JsonProperty注释不适用于Scala中的Json解析(Jackson/Jerkson)

我需要解析以下 json 字符串:

{“类型”:1}

我正在使用的案例类如下所示:

case class MyJsonObj(
    val type: Int
)
Run Code Online (Sandbox Code Playgroud)

然而,这让 Scala 感到困惑,因为“type”是一个关键字。因此,我尝试使用 Jacson/Jerkson 的 @JsonProperty 注释,如下所示:

case class MyJsonObj(
    @JsonProperty("type") val myType: Int
)
Run Code Online (Sandbox Code Playgroud)

但是,Json 解析器仍然拒绝在 json 中查找“type”字符串,而不是“myType”。以下示例代码说明了该问题:

import com.codahale.jerkson.Json._
import org.codehaus.jackson.annotate._

case class MyJsonObj(
    @JsonProperty("type") val myType: Int
)

object SimpleExample {
  def main(args: Array[String]) {
    val jsonLine = """{"type":1}"""
    val JsonObj = parse[MyJsonObj](jsonLine)
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

[error] (run-main-a) com.codahale.jerkson.ParsingException: Invalid JSON. Needed [myType], but found [type].
Run Code Online (Sandbox Code Playgroud)

PS:如上所示,我正在使用 jerkson/jackson,但如果这能让生活更轻松的话,我不介意切换到其他 json 解析库。

json scala jackson jerkson

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

标签 统计

c ×2

64-bit ×1

alignment ×1

assert ×1

ggplot2 ×1

jackson ×1

jerkson ×1

json ×1

r ×1

scala ×1

sizeof ×1