c语言中变量有什么作用是什么,C语言里面局部变量和临时变量有什么区别?
typedef
extern
static
_Thread_local
register
其中,除了 typedef (放在这里仅仅是为了描述语法方便),其它几个(配合变量声明的位置)描述了的变量的 linkage 和 storage duration。但是 storage class specifier 跟 linkage / storage duration 并不是一一对应的。
linkage:
linkage 有三种,exteranl, internal,none 。
linkage 用于描述多次相同的声明是否描述同一个变量。
external linkage 的变量表明在不同源文件(实际应为 translation unit)声明的同名变量(包括 linkage 与 type 都相同,下同)为同一个变量。通常使用 extern 声明。
internal linkage 的变量表明在不同源文件中的同名变量为不同的变量,但是同一个源文件中的多次声明为同一个变量。
no linkage 表明变量的每一个声明(即使同名)都是不同的变量。没有 extern 修饰的局部变量都是 no linkage
storage duration:
storage duration 是对象(object)的生存期:有四种:static, thread, automatic, allocated 。
static: 在整个程序的周期存在。全局变量,external linkage 变量,static 变量,等等都是 static storage duration。
thread: 在每个线程的存在周期存在。每个线程有自己不同的副本。使用 _Thread_local 声明。
automatic: 一般的局部变量。在定义域内存在,离开定义域则声明周期结束。
allocated: 使用 malloc 等动态内存管理函数创建的对象。他们没有自己对应得变量。但是通常他们得地址会存在一个变量中。
C++ 的跟这个相似但是并不相同。
“函数返回一个值相当于定义一个和返回值类型相同的临时变量并用return后面的表达式来初始化。
这个是描述 C++ 的,不是 C 。C++ 由于有类,所以比较复杂。另外,在 C++ 里,这个叫临时对象,而不是临时变量。
C 的 return 直接返回一个值。
C++ 一定要明确此处出翔的临时对象,因为在 C++ 里临时对象的创建与销毁会带来副作用(会调用构造与析构函数)。
产生这个问题的原因是我无法记忆linux里面ELF文件中bss段存储的变量到底是什么。。我觉得我对变量的类别没有一个清楚的认识。
bss 是放(全局)未初始化变量的。局部变量不会进 bss 。
相关文章:

Android Acitivity 生命周期
Fragment 的生命周期: Android Fragment 生命周期及其API使用(建议使用自定义View替换Fragment) Activity的生命周期: (1)启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用…

Docker入门六部曲——基本引导
原文链接:http://www.dubby.cn/detail.html?id8733 预备知识 虽然我们接下来还是会介绍很多概念,但是最好还是提前了解什么是Docker,和为什么你会使用Docker。 我们假设你对下面这些知识比较熟悉: IP地址和端口虚拟机编辑配置…

fragment切换事件
2019独角兽企业重金招聘Python工程师标准>>> 我使用fragment fragmenttabhost的时候,如果切换tab,对应的Fragment就会执行onDestroyView ,再切换回来又会执行onCreateView(),如此反反复复。destroyView ,c…

quartz关闭DBUG日志
使用quartz调度任务,每次启动产生大量debug日志,机器都要被累死了。 试过很多方法都不好使,包括在log4j.properties里配置 quartz源代码,发现它的日志输出用的是slf4j,而不是log4j,所以想到用logback.xml来控制。 把他…

UE卡通风格游戏场景制作视频教程
UE卡通风格游戏场景制作视频教程 UE卡通风格游戏场景制作视频教程 教程大小:4.53G 含项目文件 3840X2160 mp4 语言:英语中英字幕(机译) 本教程是关于UE4卡通渲染游戏环境场景制作训练视频教程,时长:4小时…

c语言顺序表有效元素长度,用C语言描述的顺序表类型
2.2.1 顺序表用C语言描述的顺序表类型如下所示:// 存储结构const int MAXLISTSIZE80; // 预设的存储空间最大容量typedef struct {ElemType *elem; // 存储空间基址int length; // 当前长度int listsize; //允许的最大存储容量(以sizeof(E…

css样式之边框和内外边距
1、css样式之边框:border 实心的边框: <!DOCTYPE html><html> <head> <meta http-equiv"content-type" content"text/html;charsetutf-8"> <title>页面一</title> </head> <body>…

2022-2028年中国乙烷行业投资分析及前景预测报告
【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新(交付时间约3个工作日) 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国乙烷行业市场行业相关概述、中国乙烷行业市场行业运行环境、分析了中国乙烷行业市场行业的…

SQL Server 中master..spt_values的应用
今天在做数据分析报表的时候遇到一个这样的问题。表结构如下。部门编码、部门名称、部门人员ID(中间用逗号分割)我想通过和人员表链接,查询出一个新的数据集,查询出的结果集格式如下:人员信息(ID或者姓名&a…

ora-1031解决一例
今天建立了一个测试环境,打算再次测试logical standby的建制。在建制物理standby时,发现archive log无法传递到standby,手工可以。察看log,发现如下错误: Errors in file c:\oracle\product\10.2.0\admin\it\bdump\it_arcp_2116.trc: ORA-010…

Revit:概念建模环境技能学习 Revit: Conceptual Modeling Environment
Revit:概念建模环境技能学习 Revit: Conceptual Modeling Environment MP4 |视频:h264,1280720 |音频:AAC,44.1 KHz,2 Ch 云桥网络 平台huo取 教程 技能水平:高级|语言:英语中英文字幕(根据原英文字幕机译更准确&…

1 23 456c语言,2014年计算机二级考试C语言模拟题(1)
2014年计算机二级考试C语言模拟题(1)21.下列程序的运行结果为( )。#includemain(){struct date{int year,month,day;}today;printf("%d\n",sizeof(struct date));}A.8B.6C.10D.1222.有以下程序:#include<struct s…

屏蔽浏览器默认样式 user agent stylesheet
user agent stylesheet <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> table{border-collapse: collapse;border-spacing: 0;} 转载于:https://www.cnblogs.com/jxk…

Docker入门六部曲——服务
原文链接:http://www.dubby.cn/detail.html?id8735 准备 已经安装好Docker 1.13或者以上的版本。安装好Docker Compose。如果你是用的是Docker for Mac和Docker for Windows,那么不用担心,这是自带的。如果是Linux,那么需要你去…

AngularJs学习笔记--Forms
控件(input、select、textarea)是用户输入数据的一种方式。Form(表单)是这些控件的集合,目的是将相关的控件进行分组。 表单和控件提供了验证服务,所以用户可以收到无效输入的提示。这提供了更好的用户体验…

天秤座的爱情(转)
若不是秤子们爱上了爱情,或许,也就不用独自承受那么多。他们的爱情就像在上演的一部电影,他们就在这出戏里,眼看着它从开始到结束。落幕并不可怕,秤子们在乎的是他们成就了一部电影。 秤子们不喜欢落入俗套中的爱情。与…

虚幻引擎C++终极射手教程 Unreal Engine C++ The Ultimate Shooter Course
虚幻引擎C终极射手教程 Unreal Engine C The Ultimate Shooter Course MP4 |视频:h264,1280720 |音频:AAC,44.1 KHz,2 Ch 语言:英语中英文字幕(根据原英文字幕机译更准确) |时长:55节课(8小时53分钟)|大小…
Nio得知3——该示范基地:多路复用器模式
Reactor模式和NIO 本文可以看作是Doug Lea Scalable IO in Java一文的翻译。当前分布式计算 Web Services盛行天下,这些网络服务的底层都离不开对socket的操作。他们都有一个共同的结构: 1. Read request 2. Decode request 3. Process service 4. Enco…

c语言随机数生成0 99函数,C语言生成随机数的函数、延时函数
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼下面C语言代码使用了生成随机数的函数、延时函数。请大家仔细观察其显示效果。从以下代码,我们可以得出一个重要的结论:当上述两类函数被放入循环时,应作出一定修改。同时还应关注其参数的定义位…

2022-2028年中国乙酸钴行业发展现状调研及市场前景规划报告
【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新(交付时间约3个工作日) 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国乙酸钴行业市场行业相关概述、中国乙酸钴行业市场行业运行环境、分析了中国乙酸钴行业市场…

MS UI Automation Introduction
MS UI Automation Introduction 2014-09-17 MS UI Automation是什么 UIA架构 UI自动化模型 UI自动化树概述 UI自动化控件模式概述 UI 自动化属性概述 UI 自动化事件概述 示例 使用UISpy工具 UI自动化提供者 常见问题分析解决 控件无法识别 Timing issue 本地化问题 自动化技术和…

spring+mybatis事务的readonly属性无效
在Spring配置事务中设置的read-only"true"不起作用,仍可以执行写操作;但是其他的正常。查看了一下DataSourceTransactionManager这个类的doBegin方法中没有判断read-only。HibernateTransactionManager.doBegain方法中则有一判断 if(!definiti…

ue5新手零基础学习教程 Unreal Engine 5 Beginner Tutorial - UE5 Starter Course
ue5新手零基础学习教程 Unreal Engine 5 Beginner Tutorial - UE5 Starter Course! 教程大小解压后:4.96G 语言:英语中英文字幕(机译)时长:4小时56分 1920X1080 mp4 虚幻引擎5新手教程!在这个教程中&…

C语言科学计算器思路,大神教你如何用C语言实现科学计算器
i;*leni;return temp;}/*功能:翻译操作数* 如果运算符非法,则返回0,合法则返回非零标志*/int translateopt(char *p,int *len){char fu[NUM_OPT][LEN_OPT]{"","-","*","/","^","(&qu…

BZOJ4292 : [PA2015]Równanie
注意到f(n)不会超过1459,于是暴力枚举f(n),检验nk*f(n)是否合法即可。 #include<cstdio> long long k,a,b,t;int i,j,ans; int main(){scanf("%lld%lld%lld",&k,&a,&b);for(i1;i<1459&&k<b/i;i){tk*i;if(a<…

Docker入门六部曲——Stack
原文链接:http://www.dubby.cn/detail.html?id8739 准备知识 安装Docker(版本最低1.13)。阅读完Docker入门六部曲——Swarm,并且完成其中介绍的内容。拷贝一份docker-compose.yml。确保你的虚拟机都是可用的,使用do…

SVD神秘值分解
SVD分解 SVD分解是LSA的数学基础,本文是我的LSA学习笔记的一部分,之所以单独拿出来,是由于SVD能够说是LSA的基础,要理解LSA必须了解SVD,因此将LSA笔记的SVD一节单独作为一篇文章。本节讨论SVD分解相关数学问题…

ebook download websites (to be continue...)
http://free-ebook-collection.blogspot.com/转载于:https://www.cnblogs.com/jerryhong/archive/2008/10/24/1318469.html

Blender模块化建筑环境地形场景制作视频教程 Creating modular environments
Blender模块化建筑环境地形场景制作视频教程 Creating modular environments Blender模块化建筑环境地形场景制作视频教程 Creating modular environments 流派:电子学习| MP4 |视频:h264,1280720 |音频:AAC,44.1 KHz 语言:英语中英文字幕&…

文件系统演示C语言,基于C语言的简单文件系统的实现
1 题目介绍通过具体的文件存储空间的管理、文件物理结构、目录结构和文件操作的实现,加深对文件系统内部的数据结构、功能以及实现过程的理解。在内存中开辟一个虚拟磁盘空间作为文件存储分区,在其上实现一个简单的基于多级目录的单用户单任务系统中的文…