C语言学习笔记--C语言中变量的属性关键字
变量属性关键字的使用语法:property type var_name;
1.auto 关键字
auto关键字是C语言中局部变量的默认的关键字,C编译器默认所有的局部变量都是auto的,它表明了被修饰的关键字将被存储在栈空间上。
2.register 关键字
register关键字请求将被修饰的关键字存储于寄存器中,所以register 变量必须是 CPU 寄存器可以接受的值而且不能用&运算符获取 register 变量的地址 ,
但是 register 关键字只是请求寄存器变量,所以不一定会成功。
3.static 关键字
(1)static 关键字指明变量的“静态”属性——局部变量存储在程序静态区
(2)static 关键字同时具有“作用域限定符” 作用
①static 修饰的全局变量作用域只是声明的文件中
②static 修饰的函数作用域只是声明的文件中
4.extern 关键字
(1)extern 用于声明“外部”定义的变量和函数
①extern 变量在文件的其它地方分配空间
②extern 函数在文件的其它地方定义
(2)extern 用于“告诉”编译器用 C 方式编译
C++编译器和一些变种 C 编译器默认会按“自己”的方式编译函数和变量,通用 extern 关键字可以命令编译器“以标准 C 方式进行编译”。
extern “c”
{
int f(int a,int b)
{
return a + b;
}
}
static关键字和extern关键字的使用
/**************************g.c 文件**************/
static int g_i; //g_i 只能在本文件中使用
int getI()
{
return g_i;
}
/**************************main.c 文件**************/
#include<stdio.h>
extern int getI(); //extern 声明 getI 函数是在其他地方定义的。
int main()
{
printf("%d\n", getI());return ;
}
参考资料:
www.dt4sw.com
http://www.cnblogs.com/5iedu/category/804081.html
C语言学习笔记--C语言中变量的属性关键字的更多相关文章
- C语言学习笔记--C语言中的宏定义
1. C 语言中的宏定义 (1)#define 是预处理器处理的单元实体之一(因此,预处理器只是简单的进行替换,并不(2)#define 定义的宏可以出现在程序的任意位置(包括函数体的内部)(3)#d ...
- C语言学习笔记 (002) - C++中引用和指针的区别(转载)
下面用通俗易懂的话来概述一下: 指针-对于一个类型T,T*就是指向T的指针类型,也即一个T*类型的变量能够保存一个T对象的地址,而类型T是可以加一些限定词的,如const.volatile等等.见下图 ...
- C语言学习笔记--C语言中的逗号表达式
逗号表达式:exp1,exp2,epx3,...,expN; (1)逗号表达式是 C 语言中的“粘贴剂” (2)逗号表达式用于将多个子表达式连接为一个表达式 (3)逗号表达式的值为最后一个子表达式的值 ...
- Go语言学习笔记——Go语言数据类型
布尔型 布尔型的值只可以是常量 true 或者 false.一个简单的例子:var b bool = true. 数字类型 整型 int 和浮点型 float32.float64,Go 语言支持整型和 ...
- Go语言学习笔记——Go语言的make的理解
实例:https://tour.go-zh.org/moretypes/10 谢大<Go Web编程>书中的讲解https://github.com/astaxie/build-web-a ...
- Go语言学习笔记——Go语言的指针
Go具有指针.指针保存了变量的内存地址. 类型*T是指向类型T的值得指针.其零值是nil var p *int &符号会生成一个指向其作用对象的指针 i:=42 P=&i *符号表示指 ...
- python学习笔记013——模块中的私有属性
1 私有属性的使用方式 在python中,没有类似private之类的关键字来声明私有方法或属性.若要声明其私有属性,语法规则为: 属性前加双下划线,属性后不加(双)下划线,如将属性name私有化,则 ...
- Go语言学习笔记二: 变量
Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变 ...
- [java学习笔记]java语言核心----面向对象之this关键字
一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理: 代表的是当前对象. this就是所在函数 ...
随机推荐
- ABAP动态生成经典应用之Dynamic SQL Excute 程序
[转自http://blog.csdn.net/mysingle/article/details/678598]开发说明:在SAP的系统维护过程中,有时我们需要修改一些Table中的数据,可是很多Ta ...
- Git——基本操作(三)
一.安装和配置 1.Git安装 yum install git -y 安装完Git就可以对其做一些配置: Git有一个工具被称为git config,它允许你获得和设置配置变量: 这些变量可以控制Gi ...
- 更改node版本
npm install -g n n stable 或 n v4.5.0
- PAT 天梯赛 L2-017. 人以群分 【排序】
题目链接 https://www.patest.cn/contests/gplt/L2-017 思路 第一个条件是 人群的规模尽可能接近 那么 N 为偶数的时候 就是 一半 一半 N 为奇数的时候 就 ...
- mac manpages 汉化
默认在终端进行man命令,如:man ls,会显示英文的帮助文档.本文教你如何查看中文文档. 资源:1.manpages-zh-1.5.2.tar.bz22.groff-1.21.tar.gz - ...
- 使用cocoaPods import导入时没有提示的解决办法
1.选择target(就是左边你的工程target)—— BuildSettings —— search Paths 下的 User Header Search Paths(如图所示:) 2.双 ...
- 【leetcode刷题笔记】Merge k Sorted Lists
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 题 ...
- UIView的概念与使用
什么是UIView UIView可以称之为控件/视图 屏幕上所有能看到的东西都是UIView 按钮(UIButton).文本(UILabel)都是控件 控件都有一些共同的属性 -- 尺寸 -- 位置 ...
- Shiro-权限认证(授权)-编程式授权
权限认证 权限认证也就是访问控制,即在应用中控制谁能访问哪些资源 权限认证核心要素 权限 : 即操作资源的权利,比如访问某个页面,以及对某个模块的数据的添加,修改,删除,查看的权利 角色 : 是权限的 ...
- Struts2的使用
Struts2的核心类库 名称 说明 Struts2-core-2.3.4.jar 核心类库 Xwork-core-2.3.4.jar Xwork的核心类库 Ognl-3.0.5.jar Ognl表达 ...