在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
。