游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2207|回复: 8

请教一个C++问题?

[复制链接]

21

主题

53

帖子

55

积分

注册会员

Rank: 2

积分
55
发表于 2004-6-15 15:20:00 | 显示全部楼层 |阅读模式
是这样的。我定义了一个结构:
struct SURFACE
{
            char *back;
        char *menu;
        char *ani;
};
SURFACE *surface;
有一个函数定义是这样Createdata(char *filed,char *str)---注:filed传入的参数为back,menu,ani三种字符串而以。
我想做到的是不想用switch(*filed)等等语句。
我想用的是一个语句而以(假如我的写法是对的)
strcpy(surface->(*filed),str);

请问正确的写法是怎么样的?望告知!!! [em24]

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-6-15 16:35:00 | 显示全部楼层

Re:请教一个C++问题?

你不应该这样传参数的。。。
要么就直接传OFFSET。
void Createdata(int offset, char *str);
传参数的时候就
Createdata((surface->back - surface), str);
然后解析的时候就这样:
strcpy((surface + offset), str);

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-6-15 17:03:00 | 显示全部楼层

Re:请教一个C++问题?

错了,上头的传参数应该是:
Createdata((&(surface->back) - surface), str);

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2004-6-15 19:28:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

5

主题

37

帖子

37

积分

注册会员

Rank: 2

积分
37
发表于 2004-6-15 23:29:00 | 显示全部楼层

Re:请教一个C++问题?

楼主是想做比较两个表面吧?
同意楼上的,用宏最保险:)

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2004-6-16 00:57:00 | 显示全部楼层

Re:请教一个C++问题?

void Createdata(char *filed, char *str)
{
    strcpy(filed, str);
}

其实调用这个函数时给值就行了,如下:
Createdate(surface->back, str);
Createdate(surface->menu, str);
……

21

主题

53

帖子

55

积分

注册会员

Rank: 2

积分
55
 楼主| 发表于 2004-6-16 12:37:00 | 显示全部楼层

Re:请教一个C++问题?

请问能不能用数组方式实现?
例如:char *filed[3]={"back","menu","ani"};
for(int i=0;i<3;i++)
{
     Createdate(surface->filed,str);
}

请问正确的写法怎么写?各位赐教小弟一把!!!!

8

主题

284

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
QQ
发表于 2004-6-16 13:22:00 | 显示全部楼层

Re:请教一个C++问题?

既然是指针变量,就指向数据就行了,干嘛还赋值?不是浪费资源吗?

1

主题

66

帖子

78

积分

注册会员

Rank: 2

积分
78
发表于 2004-6-16 22:05:00 | 显示全部楼层

Re:请教一个C++问题?

变量名不能这样用。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-2 01:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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