【问题标题】:what's the type of 'struct random_data* buf'? [closed]'struct random_data* buf' 的类型是什么? [关闭]
【发布时间】:2011-02-24 05:55:51
【问题描述】:

我想要一个“struct random_data*”的实例变量,用于

int random_r(struct random_data *buf, int32_t *result);

我尝试过声明为

"struct random_data* instanceBuf;"
"random_data* instanceBuf;"

但编译器不喜欢它。
我应该如何声明变量?

-编辑

啊,这个api是linux的,我在mac(bsd)上:(

哦,等等,它真的只有 linux 吗? http://www.gnu.org/s/libc/manual/html_node/BSD-Random.html

【问题讨论】:

  • 您是否包含了定义此结构random_dataspecific 头文件?或者你已经包含了一些 random 头文件? :D
  • “编译器不喜欢它”是什么意思?编译器是否报告“错误:我不喜欢这些!”
  • @James 编译器说,random_data 没有命名类型(没有'struct')或字段 instanceBuf 的类型不完整。 @Nawaz:我已经包含了
  • @Eugene:正如我所说,您已经包含了一个 random 头文件,而不是定义 random_dataspecific 文件。
  • 投票结束:问题前提无效。 Asker 试图在非 Linux 环境中使用 Linux 功能。问题与如何声明变量或如何包含文件无关。

标签: c++ types declare


【解决方案1】:

大概:

struct random_data buff;
int x = random_r (&buff, ...);

是最简单的解决方案。但您必须确保已定义该结构。

而且,如果缓冲区需要长期存在(如种子),请确保它定义在具有大范围(例如全局或类级别)的某个地方。

【讨论】:

  • 你如何声明“struct random_data buff;”在类 MyClass {};让它成为一个实例变量?
  • 默认为实例变量。如果您的意思是类变量,那只是在它前面加上静态前缀的问题。但这可能不是必需的,实例变量可能就可以了。我的意思是不要在每次你想使用它时都以新鲜的方法创建它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-17
  • 1970-01-01
  • 2017-10-26
  • 2022-01-21
  • 2013-03-14
  • 2015-02-18
相关资源
最近更新 更多