LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 849|回复: 4

怎样赋值给结构体中这样的变量?

[复制链接]
发表于 2005-1-5 12:04:55 | 显示全部楼层 |阅读模式
如下结构体:
struct codeA{
enum flow (*in)();
enum flow(*out)();
}

enum flow{1,2,3};

我想赋codeA的enum flow(*in)()为 1
应该怎么赋值讷?
发表于 2005-1-5 12:09:08 | 显示全部楼层
这样赋值有意义吗?
 楼主| 发表于 2005-1-5 12:31:28 | 显示全部楼层
是这样的,(*in)()是一个函数,返回个enum值,我现在知道这个值了,想直接赋值给它,所以才产生了这样一个问题.
发表于 2005-1-5 12:47:52 | 显示全部楼层
struct CodeA的成员in和out都是函数指针,直接赋数字是没有意义的而且危险的,应该这样赋值:

  1. enum flow funcname(void)
  2. {
  3.     enum flow something;

  4.     /* do something */

  5.     return something;
  6. }

  7. void yourfunc()
  8. {
  9.     struct codeA var;

  10.     var.in = funcname;

  11.     /* do something */

  12.     return;
  13. }
复制代码


顺便提一下,enum flow{1,2,3};是什么玩意儿? struct codeA{...}后面少了分号。
基本的东西一定要搞好,先别搞这么高级了。
发表于 2005-1-5 12:48:14 | 显示全部楼层
不能赋值为一个总返回“你已经知道的值”的函数吗?把整数赋值给指针,是要出乱子的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表