草庐IT

全军覆没

全部标签

一个关于宏定义的问题,我和ChatGPT、NewBing、Google Bard、文心一言 居然全军覆没?

文章目录一、问题重述二、AI解题2.1ChatGPT2.2NewBing2.3GoogleBard2.4文心一言2.5小结一、问题重述今天在问答模块回答了一道问题,要睡觉的时候,又去看了一眼,发现回答错了。问题描述:下面的z的值是多少。#defineFUN(a,b)ab?a:bintx=5,y=8,z;z=4+FUN(x,y);我当时的回答是:z=4+5=9但是编译运行的结果是:8又看了一眼,恍然大悟,我曾经在文章中写过:宏的替换是简单的文本替换(请好好理解这句话),它在预处理阶段进行。当编译器遇到宏名称时,会将其替换为定义中指定的代码片段。宏替换是直接替换,没有类型检查或语法分析。上面的代码