プログラムに厳密に準拠するモードが異なる結果をもたらすのはなぜON
ですか? ほとんどの最新の産業用コンパイラがデフォルトで独自の言語の一部を拡張し、一部はデフォルトで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