【C++学习记录】—— 【6】【变量和基本类型】【自定义数据结构】

零.前言

数据结构就是把一组相关的数据元素组织起来然后使用他们的策略和方法。

一.自定义类型(struct)

因为C++提供class来定义我们的数据结构,那是后面的重点,所以我们现在不做讨论,后面我们会详细说明。

1.定义

我们以关键字struct开始,紧跟着类名和类体(类体可以为空)。类体有花括号包围形成了一个新的作用域。类内部定义的名字必须唯一。但是可以与类外部的名字重复。花括号后面必须写一个分号
常见的定义有两种方式:

struct student
{
	/* *** */
}kanna, *ptr_student;
struct student
{
	/* *** */
};
student kanna, *ptr_student;

但是我们推荐使用第二种方法,因为第一种方法吧对象的定义和类的定义放在一起,容易惹人心烦。

2.类数据成员

C++11新标准规定,我们可以定义一个类内初始值
如同:

struct student
{
	int id = 0;
	unsigned level = 9;
};

二.使用类

啊这,这好像没说啥,只讲了.符号,所以就直接举个例子跳过。

struct goods
{
	int id = 0;
	int price = 9;
};

goods a, b;
int tot = 0;
a.price = 10;
b.price = 100;
tot = a.price + b.price;

三.编写自己的头文件

为了确保每个文件中类的定义一致,类通常被定义在头文件中,而且类所在的头文件的名字应与类的名字一样。

1.预处理器概述

我们之前已经了解了一个预处理器#include,现在会新了解一个预处理功能头文件保护符,它依赖于预处理变量预处理变量有两种状态:已定义和未定义。
#define把一个名字设定成预处理变量
#ifdef仅当变量的定义为真时(或已被定义)才为真
#ifndef仅当变量的定义为假时(或未被定义)才为真
#ifdef 或 # ifndef为真时,才执行后续操作,直到#endif为止
举个例子,我们的头文件:

#ifndef GOODS_H
#define GOODS_H
struct goods
{
	int id = 0;
	int price = 9;
};
#endif

如果我们没有定义GOOD_H,我们就执行后面的内容:定义GOOD_H、结构体goods,然后结束。
当然我们嵌入式文件中,也常含有这些定义:

#ifdef DRV_DEBUG
#define DBG_LVL               DBG_LOG
#else
#define DBG_LVL               DBG_INFO
#endif /* DRV_DEBUG */

如果是DEBUG模式,DBG_LVL就是LOG,否则就是INFO,这样,就可以牵一发而动全身

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

康娜喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值