美文网首页
三、C语言基础

三、C语言基础

作者: 緦菍亭芷 | 来源:发表于2020-04-28 16:18 被阅读0次

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"
如果不使用,千万不要这样写,会文本替换的,造成体积增大

相关文章

网友评论

      本文标题:三、C语言基础

      本文链接:https://www.haomeiwen.com/subject/dhspwhtx.html