C/C++语言重温------常量及C++存储类

本文重温了C/C++中的常量定义,包括使用#define预处理器和const关键字的方式,并强调常量定义时应全大写。接着探讨了C++的存储类,涵盖auto、register、static、extern和thread_local等不同存储类的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C/C++语言重温------常量及C++存储类


一、常量定义


  (1) 使用 #define 预处理器。
     例: #define LENGTH 10

  (2) 使用 const 关键字。
     例: const int LENGTH = 10;

  注意:常量定义时要全部大写!!!

  

二、C++存储类

(1)auto 存储类

 使用情景:
 <1> 声明变量 : 根据初始化表达式自动推断该变量的类型。
    例:根据初始化表达式自动推断被声明的变量
	auto f=3.14;      //double
	auto s("hello");  //const char*
	auto z = new auto(9); // int*
	auto x1 = 5, x2 = 5.0, x3='r';//错误,必须是初始化为同一类型

 <2> 声明函数 : 作为函数返回值的占位符。

(2)register 存储类

 用于定义存储在寄存器中而不是 RAM 中的局部变量。

(3)static 存储类

static 存储类,指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。
也可以应用于全局变量。当 static 修饰全局变量时,会使变量的作用域限制在声明它的文件内。

人话:只定义一次。。。

(4)extern 存储类

<1> 用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的。
<2> 用来在另一个文件中声明一个全局变量或函数。
        
    例:如两个文件:

    第一个文件:main.cpp
    #include <iostream>

	int count ;
	extern void write_extern();

	int main()
	{
	   count = 5;
	   write_extern();
	}

    第二个文件:support.cpp
	#include <iostream>

	extern int count;

	void write_extern(void)
	{
	   std::cout << "Count is " << count << std::endl;
	}

 输出结果:
	Count is 5
	
 第一个文件中的 extern 关键字用于声明在第二个文件 support.cpp 中定义的 函数。
 第二个文件中的 extern 关键字用于声明已经在第一个文件 main.cpp 中定义的 count 。

(5)thread_local 存储类

  <1> 使用 thread_local 说明符声明的变量仅可在它在其上创建的线程上访问。 
  <2> 变量在创建线程时创建,并在销毁线程时销毁。 
  <3> 每个线程都有其自己的变量副本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值