c中测试code
struct Cmstruct { int c; } Cm; // Cm是一个变量 typedef struct MyStruct //这里的 Mystruct 可以省略 { int m; } My; // My 是struct MyStruct 别名 My st; struct Cmstruct cm1; // 只能使用struct Cmstruct来定义 不能使用Cmstruct st.m = ; printf("%d\n", st.m); // 1 // struct MyStruct st1; 报错,不能再用此方法,只能 My st1 Cm.c = ; printf( cm1.c = ; printf(
c++中测试code
struct Mystruct { int m; } cm; // 上面c中说过cm是变量 cm.m = ; printf( struct Mystruct my; // 声明 my 可以省略 struct,但是c中不可以省略 my.m = ; printf( typedef struct Mystruct1 { int s; } Sname; // Sname 是struct Mystruct1 别名 Sname ss; ss.s = ; printf( struct Mystruct1 ss1; // struct Mystruct1中 struct 可以省略 // 这里与C不同,在C中起别名后的struct不能再使用struct Mystruct1声明 ss1.s = ; printf(
总结:
C与C++相同点
没有typedef时候cm/Cm是声明的一个变量,有typedef时候My/Sname 是struct别名。
C与C++不同点
没有typedef时候,C只能用struct Mystruct来声明变量,C++中可以省略struct。
有typedef时候,C只能使用别名来声明变量,C++依然可以使用struct Mystruct或者省略struct。