我在阅读一篇C++60写的中国象棋代码时,有个问题一直搞不清楚,就是数组形参的传递问题:明明在一函数里有数组形参是这一种,而实际调用时却是不同的数组,虽然两种数组都是十行九列,但是DELPHI里动会造成形参是不同类型的错误呀;如:SearchAGoodMove(BYTE position[10][9]) 这里的数组是position,(C++可以直接在形参里定义一个数组,DELPHI是不行的吧,DELPHI里必须先定义一个数组类型吧)这个函数实际调用时却是这样的:
m_pSE->SearchAGoodMove(m_ChessBoard);
m_chessBoard是预先定义好的数组: BYTE m_ChessBoard[10][9];这两个数组明明是不同类型的呀,怎么可以调用呢?如果译成DELPHI,应该如何处理呢?像这样的情况还有很多,如: virtual int Eveluate(BYTE position[10][9], BOOL bIsRedTurn);
评价函数传入的数组也是POSITION,而实际应用却是curposition,如下: return m_pEval->Eveluate(CurPosition, (m_nMaxDepth-depth)%2);如蒙回复,不胜感激!
m_pSE->SearchAGoodMove(m_ChessBoard);
m_chessBoard是预先定义好的数组: BYTE m_ChessBoard[10][9];这两个数组明明是不同类型的呀,怎么可以调用呢?如果译成DELPHI,应该如何处理呢?像这样的情况还有很多,如: virtual int Eveluate(BYTE position[10][9], BOOL bIsRedTurn);
评价函数传入的数组也是POSITION,而实际应用却是curposition,如下: return m_pEval->Eveluate(CurPosition, (m_nMaxDepth-depth)%2);如蒙回复,不胜感激!
解决方案 »
- 求 DevExpress 控件 cxgrid 导 excel 2007函数
- webconnection程序的配置,不知道现在还有没有人做这种程序:)
- 为什么idtelnet客户端一连接或发命令,界面就会死掉
- 刚从c,c++,java转向delphi,实在头痛,希望delphi的兄弟多多帮忙
- 小问题一个,请各位高手帮忙!
- 如何把图片存进SQL2000在读出来,请给个例子
- Can anybody help me to translate this paragraph?
- 有没有办法实现在程序里给sql server的数据库添加用户,密码?
- 关于MediaPlayer播放声音的控制——没有可用分了,请大家帮忙吧
- 林业部门的管理软件
- 请问大侠们,在delphi7.0中,怎么把string的类型转换为LPstr的类型啊?急救
- Grid++Report报表点击打印很慢
BYTE m_ChessBoard[10][9];
是同一类型
是不是同一类型,就看在DELPHI里如何定义了type p=array [0..9,0..8] of byte;position,m_ChessBoard:p;这样两者不就是同一类型了?如果直接定义:
position: array [0..9,0..8] of byte;
m_ChessBoard: array [0..9,0..8] of byte;
会是同一类型?
type
TDoubleArray=array[0..8] of array [0..9] of Byte;
var
position,m_ChessBoard:TDoubleArray;
Delphi认为position,m_ChessBoard是一个类型。 position: array [0..9,0..8] of byte;
m_ChessBoard: array [0..9,0..8] of byte;
Delphi认为position,m_ChessBoard不是一个类型。Delphi就是这样,没处讲理