栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

暑假c++学习打卡02-7.14 #ifndef与#endif

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

暑假c++学习打卡02-7.14 #ifndef与#endif

关于C++11的一些新变动

nullpter:C++11新标准刚刚引如的一种方法,在C++中,对指针进行初始化赋值,nullpter比NULL要好的多

分离式编译:C++语言支持分离式编译机制,允许将程序分割成若干个文件,每个文件可被独立编译。C++将申明和定义区分开来,一个文件若想使用别处定义的名字则必须包含对那个名字的申明
申明关键字extern

constexpr:C++11新标准规定,允许将变量声明为constexpr来验证变量的值是否位一个常量表达式。

constexpr与指针:

const int *p = nullptr;
constexpr int *q = nullptr;

这两者完全不同,p是一个指向常量的指针,而q是一个常量指针。即p所指向的对象的值不可改变,p的值可以改变。而q的值不可改变,但其指向的对象则可以。

ifdef与#ifndef:

这两个指令分别检查某个指定的预处理变量是否已经定义:
#ifdef当且仅当变量已定义时为真
#ifndef当且仅当变量未定义时为真
一旦检查结果为真,则执行后续操作直至遇到#endif为止。

#ifndef SALSES_DATA_H
#define SALSES_DATA_H

```cpp
#include
struct Sales_data
{
    std::string bookNo;
    unsigned units_sold = 0;
    double revenue = 0.0;
};
#endif
作用:为了确保各个文件中类的定义一致,类通常被定义在头文件之中,而且类所在的头文件的名字应该和类的名字一样。例如将Sales_data类定义在名为Sales_data.h的头文件中。
**而SALSES_DATA_H这个全是大写的名字**,被定义为变量后,如果再一次使用此头文件,那么根据#ifndef的规则,他将直接跳过的使用,避免头文件的重复使用。而为了避免与程序中的其他实体发生名字冲突,一般把预处理变量的名字全部大写。
**一般来说,程序员只要习惯性加上这些保护符即可,不必太在乎程序是否真的需要**

之前在ACM队的时候,总是看到一些大佬们加这#ifndef,#endif什么的,当初还以为这个是什么特别高级的东东,现在回头再看这个概念,才明白当初的自己对C++只是了解了一个大概,C++的学习切忌浮躁啊
暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1015194.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号