为什么编译时总报错说是非法转义序列

gyjn2013 2010-05-01 09:21:59
#define MAXSUM(a, b) (((a) != INT_MAX && (b) != INT_MAX) ? \ ((a) + (b)) : INT_MAX)

void floyd(int dist[][MAXSIZE], int path[][MAXSIZE], int n)
{
int i, j, k;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
path[i][j] = i;
for (k = 0; k < n; k++)
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
if (dist[i][j] > MAXSUM(dist[i][k], dist[k][j]))
{
path[i][j] = path[k][j];
dist[i][j] = MAXSUM(dist[i][k], dist[k][j]);
}
}

编译时老是提示红色的代码有错,非法转义序列 ?这是怎么回事啊?高手来帮帮小弟啊
...全文
515 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
uestcshe 2010-05-02
  • 打赏
  • 举报
回复
就是斜杠的问题吧
ryangio 2010-05-02
  • 打赏
  • 举报
回复
1楼说的对。。
Thirty 2010-05-02
  • 打赏
  • 举报
回复
学习。。。。
cattycat 2010-05-02
  • 打赏
  • 举报
回复
如果写在一行的话,就不要用\了,用\是表示这一行的内容没完,接到下一行。
宏不如inline好,还是把这个写成inline函数吧。
jixingzhong 2010-05-02
  • 打赏
  • 举报
回复
#define MAXSUM(a, b) (((a) != INT_MAX && (b) != INT_MAX) ? \
((a) + (b)) : INT_MAX)

如果使用了续行符,那就把后面的内容放到第二行
ericming200409 2010-05-01
  • 打赏
  • 举报
回复
楼上正解,。。。。
fox000002 2010-05-01
  • 打赏
  • 举报
回复
难道 lz 的 \ 是要续行,但没有分行

续行符后面写语句是不行的
fox000002 2010-05-01
  • 打赏
  • 举报
回复
#define MAXSUM(a, b) (((a) != INT_MAX && (b) != INT_MAX) ? \ ((a) + (b)) : INT_MAX)

这不是多了转义符号吗

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧