gcc编译器的std=c99选项
最近在学习关于 Linux 下的⽹络编程相关的知识,以前对这⽅⾯没有什么了解。跟着教程写完了代码,然后使⽤ gcc 进⾏代码编译,然后编译报错了。
gcc tcpclient.c -o tcpclient
.c:10:5: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (int i = 0; i < MESSAGE_SIZE; i ++)
^
tcpclient.c:10:5: note: use option -std=c99 or -std=gnu99 to compile your code
关键的报错位置就时这⼀处,然后根据提⽰增加了相关的参数 -std=c99,然后编译通过了。
gcc tcpclient.c -o tcpclient -std=c99
gnu编译器然后就编译通过了,然后继续尝试了 -std=gun99 的参数,也编译通过了。
后来了解到,gcc 默认使⽤的是 C89 的标准,⽽ C89 的标准不⽀持在 for 中定义循环变量,⽽在 for 循环中需要定义循环变量的话,需要在 C99 标准中才⽀持,因此需要增加 -std=c99 或 -std=gun99 参数才能编译通过。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论