1.在C++中,struct与class一般可以通用。Struct默认属性为public,而class默认属性为private。所以在C++中struct中可以包含函数,而在C中,函数不能作为struct的成员,如下:
Struct.C中编译出错,struct.cpp中没有出错。
struct stu
{
int i;
void TestFunc(void);
};
void main()
{
struct stu stStudents;
while(1);
}
2.union主要用来压缩空间,特点是所有成员共用存储空间。如果一些数据不可能在同一时间同时被使用到,可以使用union共用体来压缩空间。
3.存储模式:大端模式和小端模式。
大端模式:字数据的高字节存储在低地址中,低字节存储在高地址中。
小端模式:字数据的高字节存储在高地址中,低字节存储在低地址中。
4.enum枚举类型:枚举类型中的数据成员为常量,所以一般在定义时大写,分隔用的是逗号而不是分号,使用里面的数据时,直接用,比如下面的GREEN,而不能用ColorVal.GREEN。
eg:枚举类型
enum Color
{
GREEN=1,
RED,
BLUE,
GREEN_RED=10,
GREEN_BLUE
}ColorVal;
printf("\n%d",sizeof(GREEN));和printf("\n%d",sizeof(ColorVal));结果都为4。这是为什么呢?只计算了里面的一个数据的长度。
5.typedef取的别名不支持类型扩展
eg:
typedef int int32;
unsigned int32 i=10;//错误,不能这样扩展类型
int32 i=10;//正确
6.在C编译器中,会将注释剔除,用空格来代替原来的注释。编译器只要看到/*就会把它当成一段注释的开始。编译器从左往右找符号,找到第一个符号后会继续往右找,如果连着的符号刚好组成一个符号就会把它当成一个整体。
7.右移(>>),对于有符号数,右移时符号位将随同移动,当为正数时,最高位补0,为负数时,补0还是补1取决于编译系统规定,但多数为补1。
文章评论(0条评论)
登录后参与讨论