【C++基础】enum,union,uint8_t,static

enum

所以有时候使用 Enum 的目的,不是为了自定义一种数据类型,而是为了声明一组常量。

from: https://github.com/wangdoc/clang-tutorial/blob/main/docs/enum.md

union

C 语言提供了 Union 结构,用来自定义可以灵活变更的数据结构。它内部包含各种属性,但是所有属性共用一块内存,导致这些属性都是对同一个二进制数据的解读,其中往往只有一个属性的解读是有意义的。并且,后面写入的属性会覆盖前面的属性,这意味着同一块内存,可以先供某一个属性使用,然后再供另一个属性使用。这样做的最大好处是节省内存空间。

from: https://github.com/wangdoc/clang-tutorial/blob/main/docs/union.md

uint8_t x : 1

这些类型的来源:这些数据类型中都带有_t, _t 表示这些数据类型是通过typedef定义的,而不是新的数据类型。也就是说,它们其实是我们已知的类型的别名。

from: https://blog.csdn.net/mary19920410/article/details/71518130

static void f();

static说明符对于全局变量和局部变量有不同的含义。

(1)用于局部变量(位于块作用域内部)。

static用于函数内部声明的局部变量时,表示该变量的值会在函数每次执行后得到保留,下次执行时不会进行初始化,就类似于一个只用于函数内部的全局变量。由于不必每次执行函数时,都对该变量进行初始化,这样可以提高函数的执行速度,详见《函数》一章。

(2)用于全局变量(位于块作用域外部)。

static用于函数外部声明的全局变量时,表示该变量只用于当前文件,其他源码文件不可以引用该变量,即该变量不会被链接(link)。

static修饰的变量,初始化时,值不能等于变量,必须是常量。

--
只在当前文件里面使用的函数,也可以声明为static,表明该函数只在当前文件使用,其他文件可以定义同名函数。

from: https://github.com/wangdoc/clang-tutorial/blob/main/docs/specifier.md

相关推荐
高山上有一只小老虎几秒前
IDEA Community如何使用外置的tomcat
java·ide·intellij-idea
码农阿豪1 分钟前
从 Oracle 到电科金仓:一次性能优化视角下的深度迁移体验
数据库·oracle·性能优化·金仓数据库
txzz88881 分钟前
Linux系统db_load命令
数据库·翻译·db_load命令
2401_876221341 分钟前
数据库系统概论(第6版)模拟题1
数据库
cike_y1 分钟前
Mybatis之分页的实现&日志工厂&Log4j详解
数据库·log4j·mybatis
mixboot3 分钟前
navicat配置HTTP 远程连接SQLite数据库
数据库·sqlite
海南java第二人4 分钟前
Java类加载机制深度解析:从双亲委派到自定义加载的完整指南
java·spring
侧耳倾听1114 分钟前
基准测试框架JMH
java·测试工具
瀚高PG实验室5 分钟前
Tomcat 后台日志不断刷新应用系统重新连接HGDB的警告信息
数据库·瀚高数据库
草莓熊Lotso6 分钟前
C++ 智能指针完全指南:原理、用法与避坑实战(从 RAII 到循环引用)
android·java·开发语言·c++·人工智能·经验分享·qt