extern 和 static和 今天的一些代码,12-03
这是关于标识符的链接属性的,链接属性只有三种:external, internal, none
改变规则:
3.1 文件作用域的变量和函数定义,即在所有 代码块和参数列表之外的标识符,使用static修饰,则具有内部链接属性。//函数声明前不能加static
3.2 一个标识符声明为extern,并且前面已经对同一个标识符进行了声明,那么 (就是把原本为none的属性改为external)
①如果前一个声明时internal或者external,那么后一个声明与前一个相同。(即尽管后一个使用了extern,但其链接属性由前一个决定)。
②如果前一个声明为none,或者前一个声明在当前作用域不可见,那么这个标识符的链接属性为external。
//a.c 变量源作用域,为局部变量,全局变量缺省就是extren属性
#include <stdio.h>
void main()
{
;
sub();
printf("%d\n", A);
}
//b.c 需要extern的变量
void sub()
{
extern int A; //这是错误的!
A = A * A;
}
#include <stdio.h>
#include <string.h>
void main()
{
//char *p = "abcd";
char p[]= "abcd";
char c, d;
c = *(p+);
d = p[];
printf("%c \n", c);
printf("%c \n", d);
printf("%ld\n", p); //变量p的值,"abcd"的存储地址
printf("%ld\n", *p); //变量p自己的存储地址
printf("%ld\n", &*p); //取*p这个地址上的值,即p本身了
printf("%s \n", p);
printf("%c \n", p);
}
#include <stdio.h>
void main()
{
char const a = 'A';
printf("%d\n", sizeof (char));
printf("%d\n", sizeof a);
printf("%d\n", sizeof 'A');
}
#include <stdio.h>
void main()
{
] = { , , , , a, };
] = "1234a6";
printf(]); //有点疑问,搞不懂什么意思
printf(]);
}
extern 和 static和 今天的一些代码,12-03的更多相关文章
- 链接(extern、static关键词\头文件\静态库\共享库)
原文链接:http://www.orlion.ga/781/ 一. 多目标文件的链接 假设有两个文件:stack.c: /* stack.c */ char stack[512]; int top = ...
- [C]控制外部变量访问权限的extern和static关键字
一.extern 概述 编译器是由上至下编译源文件的,当遇到一些函数引用外部全局变量,而这个变量被定义在该函数声明主体的下方,又或者引用自其它的编译单元,这个情况就需要extern来向编译器表明此变量 ...
- 话说extern和static
以前对extern.static的一些东西一直模棱两可.今天好好来梳理了一番.. static关键字 被static修饰的变量或函数称之为静态成员.函数. 存储位置:static修饰的变量存放在静态区 ...
- C++中extern “C”含义及extern、static关键字浅析
https://blog.csdn.net/bzhxuexi/article/details/31782445 1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C ...
- IOS的变量前加extern和static字段
IOS的变量前加extern和static字段 前一阵子,做项目的时候到网上找Demo,打开运行的时候发现其中变量前有关键字extern和static,所以我研究了一下子 对于extern来说可以理解 ...
- 全局变量,extern和static以及命名空间的区别
全局变量,extern和static以及命名空间的区别 全局变量只是在声明它的文件中有效,假如在另一个文件中声明定义了一个相同名称的全局变量,则在后续使用这两个变量的时候会产生名字上的冲 ...
- ZT --- extern "C"用法详解 2010-08-21 19:14:12
extern "C"用法详解 2010-08-21 19:14:12 分类: C/C++ 1.前言: 时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus ...
- 关于extern和static关键字引出的一些关于作用域和链接属性和存储类型的问题
在进入正题前我们必须了解一些概念: 标识符:标识符不仅仅代表着变量的名字,main()函数的main也是一个标识符,这点很重要. 存储类型:即变量的存储位置及其生存周期:静态区:分为两块 .date ...
- auto, extern, register, static
对于一个数据的定义,需要指定2中属性: 存储类型和数据类型: static int a; auto char c; register int d; 1 auto 2 extern 3 register ...
随机推荐
- [百科] - CreatePen()
CreatePen编辑[声明]HPEN CreatePen(int nPenStyle, int nWidth, COLORREF crColor);[说明]用指定的样式.宽度和颜色创建一个画笔[参数 ...
- IIS权限设置
Check in the IIS Manager to see what authentication type is enabled on the directories that are part ...
- [办公应用]我的WORD文档表格操作不灵活 无法调整列宽
最近同事的一个word文档中的表格操作非常不灵活,用鼠标直接调整列宽时总觉得很不灵活.她的操作系统为XP,office 为微软office 2003. 我首先检查了木马,检查了输入法等,结果都没有问题 ...
- react 用value 直接赋值 必须用onchange的解决方式
render : function(){ return <input value={this.state.bankCardValue} type="text" onKeyUp ...
- jQuery 判断多个 input checkbox 中至少有一个勾选
html ( 使用 TP 标签 ) : <volist name="health_tag" id="htag"> <input type=&q ...
- 必应(Bing)每日图片获取API
必应(Bing)每日图片获取API January 11, 2015 API http://lab.dobyi.com/api/bing.php 介绍 Value Description title ...
- memcached学习笔记6--浅谈memcached的机制 以及 memcached细节讨论
附:请浅谈memcached的机制 答: ①基于C/S架构,协议比较简单 c/s架构,此时memcached为服务器端,我们可以使用如PHP,c++/c等程序连接memcached服务器. memca ...
- Worker 工作 后台js 工作
<script type="text/javascript"> var w; function startWorker() { if (typeof (Worker) ...
- coursera python 学习总结
为啥要写这篇总结?早上突然想到了四个字:知行合一.实践,总结,再实践,再总结经验,积累经验,为己所用.闲话少叙,来干货: 1.目标要单一,如果想要完成课程,还要健身,还要玩玩游戏.看看电影,还学别的课 ...
- P1965 转圈游戏
很容易可以得到,答案应该是(x+m*10^k)%n 很显然,用O(n)一定会卡爆,所以用快速幂来算,或者找一下循环节也是可以的. #include <bits/stdc++.h> usin ...