C和C++中使用结构体的一点区别
2011-03-03 10:13
357 查看
从学校毕业以后,开发东西几乎全部是c++,今天在Linux用c编程,发现关于结构体在定义和使用的上的一点区别。至于结构体在c++有类的特性,这里不做赘述,感兴趣的朋友可以自己查看c++ primer的相关章节。
以前在c++中定义和使用结构体如下:
// definition
typedef struct Student_t
{
int num;
char name[128];
}Student, *PStudent;
//or
struct Student_t
{
int num;
char name[128];
}
// usage
Student st;
Student_t st;
上面代码中使用Student或者Student_t直接定义变量,都没有问题。
如果把上述代码搬到纯c环境(用C编译器,如gcc),Student st是没有问题的, 但是Student_t st;则编译出错。c语言要求前面必须加struct关键字。也就是 struct Student_t st;
上述问题与操作系统环境没有关系,只与编译器相关,将上述编译出错的代码用g++编译就没有问题。
出处:http://www.linuxidc.com/Linux/2010-08/28162.htm
以前在c++中定义和使用结构体如下:
// definition
typedef struct Student_t
{
char name[128];
}Student, *PStudent;
//or
struct Student_t
{
int num;
char name[128];
}
// usage
Student st;
Student_t st;
上面代码中使用Student或者Student_t直接定义变量,都没有问题。
如果把上述代码搬到纯c环境(用C编译器,如gcc),Student st是没有问题的, 但是Student_t st;则编译出错。c语言要求前面必须加struct关键字。也就是 struct Student_t st;
上述问题与操作系统环境没有关系,只与编译器相关,将上述编译出错的代码用g++编译就没有问题。
出处:http://www.linuxidc.com/Linux/2010-08/28162.htm
相关文章推荐
- c和c++中使用结构体的一点区别
- c和c++中使用结构体的一点区别
- malloc/free和new/delete的主要区别以及c与c++关于结构体定义使用的区别
- struct关键字在C和C++中使用时的一点区别
- C++中的结构体的学习使用(持续更新中)
- C++中结构体与类的区别
- C++为什么使用指针---堆和栈的区别
- 三目运算符在java和C/C++中的使用区别
- 浅谈C++中qsort与sort的使用方法与区别
- c++类型转换关键字dynamic_cast和static_cast的使用区别
- c/c++中使用sizeof计算结构体struct和类class的长度(字节)
- C++中对象使用new与不使用new的区别
- C++中结构体与C的结构体、及C++类的区别
- C++ 结构体vector使用sort排序
- C/C++中结构体的区别
- c++调用类内部使用成员变量和inline函数的区别
- c++中关于类(class)和结构体(struct)的区别个人总结
- 【好】C++中lib 和 dll 的区别、生成以及使用详解
- C++中关于类(封装、继承、多态)区别于结构体的理解
- fstream和ofstream使用上的一点区别