FUN funs[16]={fun1,NULL,fun3}//假设我们知道最多也就16个功能,但是目前只有功能0和2被实现,功能1和其他的3~15都还没有实现
for(...)
{
int funCode
...
if(funs[funCode]!=NULL)//如果不是NULL,说明对应的功能号被实现启好团了
funs[funCode](...)//调用
}
---------------------------------------------------------
楼主,C语言是不应该干这件事的!
楼主你的需求实际上可以这样描述:
1 怎样才能根据输入条件来调用不同的函数
2 条件和函数是一一对应的,但是函数在哪是不确定的,例如可能是其他函数传进来的。
我举个简单例子来解决你的问题
typedef void (*FUN)(...)//参数列表和返回值自己填
//定义一些功能函数
void fun1(...)
{
printf("1\n")
}
void fun2(...)
{
printf("1\n")
}
....
//上面的注意了,参数列表和返回值要一样的
FUN funs[]={fun1,fun2,...}//把函数的指针放进数组,就像你C51的向量区,存放了许多函数的地址,这里最终放的也是地址,只不过等程序编译好了才知道是多少,
...//一堆代码
int funCode//用来存放计算出来的功能代码,例如0表示fun1,1表示fun2
...//一堆超级复杂而且重要且不可逃避的代码之后,funCode被设为了某个值,这个这个值实际上是我精心而且故意设计为袜键理解简单的小玩意,代表某个功能的代码。
funs[funCode](...)//调用功能函数(知道funCode需要精心设计了吧,funCode为0就调用了fun1),当然你也可以把funs传到某个函数,然他也像这样使用传进去的函数。
FunCode常见运用问题解答
问题
1
、运行
FunCode
,导致电脑分辨率严重下降。
症状:
Windows
桌面图片变得特别大,
FunCode
界面变大,整个电脑指让唯屏幕只能看到其中一部分。
解决办法:
1
、确保显卡支持
DX9.0
及以上版本;
2
、升级最新的显卡驱动程序。
问题
2
在
FunCode
中设计好界面,运行程序,游戏屏幕是黑屏。
症状:
造成该问题,有多种原因,根据不同原因有不同解决方法。
解决办法一
:
先点击
FunCode
工具条中的运行按钮
,如果运行正常(屏幕有图片)
,然后再在
VC
中运
行程序。
解决办法二:
检查电脑时间,确保电脑时间不能比实际时间提早。如果发现提早,需要 *** 作如下几步:
关闭
FunCode
。
把
FunCode
安装目录下
Bin\game\managed\datablocks.cs.dso
删除;
正确设置电脑时间。
重新打开
FunCode
。
解决办法三:
与
LanStar
软件(南京远志电脑管理软件)存在冲突。应安装最新
LanStar
或者卸载该软件。
解决办法四
精灵名称不能包含中文、开头是数字,或者中间有空格。按规定重新命名精灵名称。
解决办法五:
在排除上述两种原因的情况下,重新创建项目运行。
问题
3
:打开
FunCode
的
VC
工程,提示工程不存在
症状:
解决办法:
确保创建的工程名称不包含空格。比如工程名称为
sea fish
,是非法的。必须改为
seafish
。
问题
4
:
已经创建了
VC
工程,
也正确设置了
VC
启动版本,
但是点击
“打开
VC
工程”
,不能启动
VC
。
解决办法:
VC++
是绿色版(无需安装直接使用的版本,因此
VC++
的唯培安装路径不会保留在
Windows
的注册表中)
,
FunCode
不能通过注册表信息找到
VC++
的目录所在。
通过
VC++
直接打开工程, *** 作步骤如下:
1
)
打开
VC++
。
2
)
在
VC6.0
中,点击“文件”菜单中的“打开
工作区”
。在
VC2008
或
2010
中,点击
“文件”菜单中的“项目
/
解决方案滑简
…
”
,分别如下图:
VC 6.0
VC2008
/
2010
3
)
在跳出的文件窗口中,找到相应的
VC++
工程文件并打开。
VC++
工程文件图标如下
(名称根据具体项目确定)
:
6.0
2008
2010
6.0
版本工程文件的保存路径:
\
实验项目所在路径
\SourceCode\VCProjectVC6
2008
版本工程文件的保存路径:
\
实验项目所在路径
\SourceCode\VCProject2008
2010
版本工程文件的保存路径:
\
实验项目所在路径
\SourceCode\VCProject2010
4
)
如果我们忘记了实验项目当前的路径,最简单的一个办法就是点击“项目”面板中
的“打开工程文件夹”按钮,就会d出项目所在文件夹,从而了解当前路径所在。
问题
5
:
VC6.0
在
Win7
下运行,不能添加文件。
解决办法
1
、
下载
FileTool.dll
文件。
2
、
复制到
VC6.0
安装目录下。具体子目录为:
/Microsoft Visual Studio/Common/MSDev98
/AddIns/
3
、
用管理员权限启动
cmd.exe
。
4
、
在
cmd.exe
窗口中,先转移到
FileTool.dll
所在目录,然后执行
regsvr32.exe
。
5
、
按
Enter
键,注册成功。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)