知方号

知方号

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

然后就编译通过了,然后继续尝试了 -std=gun99 的参数,也编译通过了。

后来了解到,gcc 默认使用的是 C89 的标准,而 C89 的标准不支持在 for 中定义循环变量,而在 for 循环中需要定义循环变量的话,需要在 C99 标准中才支持,因此需要增加 -std=c99 或 -std=gun99 参数才能编译通过。

我的微信公众号:“码农UP2U”我的公众号

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。