100分求教,如欲定义一宏,如:def(x),x为一整形变量, 使其代表一未知类型变量 mx (x为变量名称的一部分),即m1,m2,m3......,请教如何做,还有无更好办法,谢谢! 这样定义:#define def(x) m##x那么如果用:int def(1); //就被扩展为int m1; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不过这样做的话只是简单的把x作为字符串连接起来,不能设x为变量名。比如:int def(x1) ---> int mx1;如果在x为某个变量时仍有效果,宏应该不行了。不知道你的具体意思,一般情况数组可以满足需要吧,为什么要用这样复杂的机制呢? 看来这位同志可能是想这样用:for(int i=0;i<n;i++)def(i);用变量生成一系列变量。用数组不行吗?##是不能满足这种需要的。 还不如将其定义为LPVOID类型先... 这位同志,你整形i的1、2、3.....是在你的二进制代码中。而你设置的变量名m1,m2,m3....是在你的源程序中的。按你的意思是要把已经编译好的二进制代码用来定义源程序的变量名,好像不太现实吧。用数组不行吗。 感谢叉叉等楼上的兄弟,我的目的是用该宏,指代程序已存在的变量或宏,如: 资源宏 IDC_EDIT_BASE1、IDC_EDIT_BASE2、IDC_EDIT_BASE3...... (因该类宏数量多,用symbol value 不易程序移植,用数组工作量大,维护困难) 数据库字段名 m_pSet->m_m1、m_pSet->m_m2...... (该类同样数量多,又要动态定义,同样需要动态生成)另问一相关问题c++有无宏或其他办法,使字符串,动态生成c++ 语句执行。以上问题在java、foxpro利用宏,是很容易解决,难道号称最好的编程语言的c++,却无法解决。如蒙指教,不胜感激。 请问#define SPXSendData(pSocket, a) if (!pSocket##.SendToServer(a)) throw((int)0)##代表啥 VS2008新建单文档时项目类型 为什么鼠标移到窗口中的控件,也会触发 OnMouseLeave呢? 控件怎么防闪! 帮个忙 真难啊! 用ado连接数据库时,如何取出其中的空字段? 通过注册表如何得到cpu硬盘内存的数据问题! 快来领分:只是定义了文本的颜色代码还用释放GDI吗???(100分) 新手求教:如何分割图像呢 ? 如何用鼠标移动没有标题栏的对话框呢? 一个问题!!请执教 要怎么写调用接口的程序呢?
int def(x1) ---> int mx1;
如果在x为某个变量时仍有效果,宏应该不行了。不知道你的具体意思,一般情况数组可以满足需要吧,为什么要用这样复杂的机制呢?
for(int i=0;i<n;i++)
def(i);
用变量生成一系列变量。用数组不行吗?##是不能满足这种需要的。
如:
资源宏 IDC_EDIT_BASE1、IDC_EDIT_BASE2、IDC_EDIT_BASE3......
(因该类宏数量多,用symbol value 不易程序移植,用数组工作量大,维护困难) 数据库字段名 m_pSet->m_m1、m_pSet->m_m2......
(该类同样数量多,又要动态定义,同样需要动态生成)另问一相关问题c++有无宏或其他办法,使字符串,动态生成c++ 语句执行。以上问题在java、foxpro利用宏,是很容易解决,难道号称最好的编程语言的c++,却无法解决。如蒙指教,不胜感激。
#define SPXSendData(pSocket, a) if (!pSocket##.SendToServer(a)) throw((int)0)##代表啥