为什么严格遵守程序的ON
or模式会产生不同的结果?严格遵守编写的原因,大多数现代工业编译器默认对自己的语言进行一些扩展,有的默认是C99等。OFF
ANSI C
#include <stdio.h>
#include <string.h>
int main (void)
{
int len;
len = strlen ("??=");
printf ("len=%d\n", len);
return 0;
}
这是结果。在这两种情况下都提交了编译器选项-w
来抑制警告:
$ gcc t.c -w
$ ./a.out
len=3
$ gcc t.c -ansi -w
$ ./a.out
len=1