最近在学习关于 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”我的公众号