当前位置:首页
开发技术指南» 文章正文
    引言:

 ·随机分配的问题。    »显示摘要«
    摘要: 一副牌去了大小鬼,把52张分给4个人,就是要实现平时我们玩牌那样的过程。用c/c++,怎么样写程序?假设提供了random这个函数,它每次返回0~1的小数。 ......
    摘要: 为什么技术人员跟市场这么脱节,还是就我跟市场脱节。 ......


关于#define的新问题,不知大家见过没有

#define   CAST  
  #define   A(x)     (CAST(x))  
  #define   A(x,y)   (CAST((x)+(y)))  
   
  void   main()  
  {  
    INT   i=A(1);  
    INT   j=A(1,2);  
  }  
  在Borland   C++   ver3.1下编译  
  跟踪结果为i=1,j=3  
   
  像这样#define   CAST的形式我以前在.h中使用,以防止头文件的重复包含  
  #ifdef   _X  
  #define   _X  
  ...  
  #endif  
   
  我以前在想,#define   CAST只不过是定义一个随机的值,具体的值有编译器指定,需要保证在所有头文件中类似的值是唯一的就行了。但是这样#define   A(x)     (CAST(x))实在是想不通,究竟有什么用,好像在书上也没有说过,不知那位大虾能给说明一下.

NO.1   作者: xuying

因为   #define   CAST   后面没有内容,所以  
  #define   A(x)   (CAST(x))  
  就相当于  
  #define   A(x)   x

NO.2   作者: mujwaidk

宏定义实际上是字符串替换,然后教给编译器处理。你的CAST为空,当然不起任何作用

NO.3   作者: vericky

xuying说得对,你这个#define     CAST   实在是莫名其妙,既然是用来防止重复包含的,为什么有用来计算,  
   
  实际上  
  #define   A(x)     (CAST(x))就等于   #define   A(x)   x  
  #define   A(x,y)   (CAST((x)+(y)))就等于   #define   A(x,y)   x+y  
   
  希望我没有理解错你的意思

NO.4   作者: sclzmbie

在   VC7   下根本无法通过编译。  
   
 


 ·可变参数列表的问题》。。    »显示摘要«
    摘要: 例如(char *variable,...) 通过va_start、va_arg可以一个一个地获得,但如何把后面的字符串全部获得? 或者说va_list是不是有个结尾标志? ......
» 本期热门文章:
· 热门栏目:
» 相关精选文章
» 其它相关:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE