A、struct 结构体
结构体:里面所有的成员,默认都是public
struct Student
{
/**
* 结构体:里面所有的成员,默认都是public
*/
char * name;
int age;
char sex;
};
//使用
struct Student student; // 在栈中就定义了
student.name = "张三";
student.age = 99;
student.sex = 'M';
printf("name:%s, age:%d, sex:%c \n", student.name, student.age, student.sex);
struct Worker
{
char * name;
int age;
char sex;
}s1, s2;
//使用
s1.name = "李元霸";
s2.sex = 'M';
s1.age = 66;
printf("name:%s, age:%d, sex:%c \n", s1.name, s1.age, s2.sex);
// 定义一个名称位 DOG 的结构体
typedef struct
{
char * dogName;
int dogAge;
char dogSex;
} DOG;
//使用
DOG dog;
dog.dogSex;
dog.dogAge;
dog.dogName;
B、pragma
#pragma pack(2); // 内部使用对其的算法,通常情况下,我们不会指定的
// 这样指定的目的是为了节约内存,内部算法好方便位移
struct Person
{
int number1;
char number2;
int number3;
};
#pragma pack(); // 还原操作
C、union 共用体/联合体
举例:有一个这样的需求,很多的扩展成员属性,会被使用,我们要保证最新的值信息,这个使用就可以用到共用体了
举例:有一个这样的需求:很多扩展的成员属性,会被使用,但是要保证这些属性的 唯一性,这个时候共用体就有用了
union MyCount
{
int countValueInfo;
int countValueInfo2;
int countValueInfo3;
int countValueInfo4;
int countValueInfo5;
int countValueInfo6;
int countValueInfo7;
int countValueInfo8;
char sex;
char sex2;
};
include 并不是等于Java只能的 import java.lang.String
// 相当于文本替换,相当于把main.h的代码全部粘贴过来
#include "main.h"
如果不使用,千万不要这样写,会文本替换的,造成体积增大
网友评论