在VS中编译时,我没有收到任何错误,但是在gcc中,我得到了以下内容:

warning: format ‘%Lf’ expects argument of type ‘long double *’, but argument 2 has type ‘double *’ [-Wformat=]
  scanf("%Lf",&checkprice);
  ^
/tmp/cch8NUeU.o: In function `main':
test.c:(.text+0x8e1): undefined reference to `stricmp'
collect2: error: ld returned 1 exit status

我想这很正常。我如何在gcc中修复它?

最佳答案

stricmp()不是标准函数,尽管存在POSIX等效的 strcasecmp() ,因此为了使您的代码能够与两个编译器无缝编译,您可以添加以下内容

#ifdef __GNUC__
#define _stricmp strcasecmp
#endif

并使用 _stricmp() ,因为stricmp()deprecated

还要修复scanf()格式说明符,或将目标变量类型更改为long double

09-06 19:39