Variable-length arrays in C89?

牧云@^-^@ 提交于 2019-11-29 09:57:34

GCC always supported variable length arrays AFAIK. Setting -std to C89 doesn't turn off GCC extensions ...

Edit: In fact if you check here:

http://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html#C-Dialect-Options

Under -std= you will find the following:

ISO C90 programs (certain GNU extensions that conflict with ISO C90 are disabled). Same as -ansi for C code.

Pay close attention to the word "certain".

C89 does not recognize // comments.

C89 does not allow definitions intermixed with code.

You need to fflush(stdout) after the printf to be sure of seing the prompt before the scanf.

main "looks better" as int main(void)

Try gcc -std=c89 -pedantic ... instead

You're missing that without -pedantic, gcc isn't (and doesn't claim to be) a standard-conforming C compiler. Instead, it compiles a GNU dialect of C, which includes various extensions.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!