#include <float.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#ifndef max(x,y)
#define max(x,y) ((x>y)?x:y)
#endif#ifndef min(x,y)
#define min(x,y) ((x<y)?x:y)
#endifvoid main()
{
return;
}
我什么也没做,这个程序就出毛病,第一次编译时会有这个警告,但是再次编译时警告就消失啦!可是由于程序比较大,我怕运行会影响后面的程序,所以想请高手帮忙,看看能不能把这个警告去掉!谢谢!warning C4067: unexpected tokens following preprocessor directive - expected a newline

解决方案 »

  1.   

    #define max(x,y) (((x)>(y))?(x):(y)) ?????
      

  2.   

    不用管它,没问题的,
    要想去警告:
    #pragma  warning(  disable  :  4067  )
      

  3.   

    是不是max和min是已经存在的函数名啊,你换一个名称吧
      

  4.   

    在最前面加
    #pragma  warning(  disable  :  4067  )
      

  5.   

    是的,这本来是一个工具箱的程序,本来#define min(x,y) ((x <y)?x:y) 前面是没有#ifndef min(x,y) ,错误提示是宏重复定义,所以我又加了一个#ifndef min(x,y) ,如果函数名改的话,怕影响以后的调用!
      

  6.   

    或者屏蔽掉
    #pragma warning(disable:4067)  //屏蔽
    #ifndef max(x,y) 
    #define max(x,y) ((x>y)?x:y) 
    #endif #ifndef min(x,y) 
    #define min(x,y) ((x <y)?x:y) 
    #endif 
    #pragma warning(default:4067)  //恢复
      

  7.   

    哦,我在stdlib.h中找到这个函数的定义啦!
    #ifndef __cplusplus
    #define max(a,b)    (((a) > (b)) ? (a) : (b))
    #define min(a,b)    (((a) < (b)) ? (a) : (b))
    #endif呵呵,由于要自己实现算法才刚刚接触编程,以后请高手多多指教!结贴啦