参加“顶嵌杯”全国C语言编程大赛,初赛全是水题,用C++提交都过了,但是后来我和客服联系的时候他说只能用GCC提交,没办法,我只好又用GCC提交了一次,但是GCC我就用过那么几次,并不是很熟悉,所以在这里面遇到了不少困难,不过最终还是把这些困难解决了。
我采用的GCC编译器是DEV下面的GCC.EXE,直接在Windows的命令行下面使用,没办法,Ubuntu下面的GCC没有跟新,不能用。下面简单讲一下我发现的GCC和G++、C++的一点点区别。
一、和C++相似但不相同,不存在using namespace std,所以要用#include <stdio.h>来取代iostream和using namespace std。
二、没有bitset之类的东西,估计是不支持C++的STL。
三、程序最后面最好空行,要不会有一个warning。
四、编译命令 gcc -o out.exe source.cpp。
五、string.h不能写成cstring,其他头文件以此类推。
六、变量最好全部定义在main的最前面,或全局变量放在程序的开头。
七、使用函数memset时必须包含string.h这个头文件
八、结构体因为后面使用时任然需要struct,所以在开头写typedef就行了,C++好像可以不要。
代码举例:
typedef struct _teststruct
{
char name[16];
int id;
}stu;
//typedef
int main(void)
{
char temp[256];
stu info[256];
memset(temp, 0, sizeof(temp));
//......
return 0;
}
//末尾空行
#include <iostream>
using namespace std;
struct stu
{
char name[64];
int id;
};
int main(void)
{
char temp[256];
memset(temp, 0, sizeof(temp));
stu[256]; //定义顺序
//......
//末尾不空行即可
return 0;
}