社区
Linux_Kernel
帖子详情
问一个静态变量和外部函数的问题。
linux8282
2007-10-28 01:55:03
刚刚发现了这样一个问题。某个内核模块的代码和用户态的代码中有同名的函数和静态变量。 哪位高手解释一下为什么不会产生冲突。谢谢?(Linux 2.4.26)
...全文
87
5
打赏
收藏
问一个静态变量和外部函数的问题。
刚刚发现了这样一个问题。某个内核模块的代码和用户态的代码中有同名的函数和静态变量。 哪位高手解释一下为什么不会产生冲突。谢谢?(Linux 2.4.26)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
linux8282
2007-10-31
打赏
举报
回复
给分怎么给?打算结贴了
土豆
2007-10-29
打赏
举报
回复
这既是Linux的问题,也是C语言的基础问题
C语言的问题如楼上所说
而关于linux的问题,即使不是静态变来那个,两个同名变量在不同的生存空间里。赵家有个儿子,王家也有儿子,你有看赵家的儿子跟王家的儿子混淆的吗?赵家喊儿子的时候只有赵家的儿子会答应。
winter_sui
2007-10-28
打赏
举报
回复
这不是linux的问题,是c语言的基础问题。
用static修饰的静态变量或函数只有在静态变量所在的文件是可见的,别的文件是不可以使用的。相当于私有的概念。
linux8282
2007-10-28
打赏
举报
回复
能详细解释一下吗?小弟刚接触linux。
artszhao
2007-10-28
打赏
举报
回复
为什么会有冲突哪?
一个是不同的模块作用域,一个是不同的代码地址空间。。。
静态变量
不能跨
函数
使用
这个程序从语法上没有错误,但是从逻辑上讲是有
问
题
的。因为调用function()
函数
已经执行完毕
函数
内存的
静态变量
已经释放,p就不能指向i 但是却把 i的内存变量值读取出来了,这是不可以的。
静态变量
不可以跨
函数
使用 #include <stdio.h> void function(int ** q) { //q是个指针变量,无论q是什么类型指正变量,都只占4个字节 ...
外部
函数
、静态
函数
;
外部
全局变量、静态全局变量
一、
外部
函数
(定义时默认) 在定义
函数
时,如果在
函数
首部的最左端冠以关键字extern,则表示此
函数
是
外部
函数
,可供其他文件调用。 如果在定义
函数
时省略extern,则默认为
外部
函数
。 但是,在调用
外部
函数
时,声明中不可省略extern。 /* 另
一个
文件max.c中 */ extern int max(int x,int y)//定义时,也可以不加extern,默认即为
外部
函数
{ ...
C语言学习记录(五)——作用域和存储类标识,快速看懂
静态变量
、
外部
变量、局部变量
学习足迹前言一、基于作用域划分的变量类型二、三大存储类标识1.
外部
(extern)变量2.静态(static)变量3. auto变量三、
静态变量
、
外部
变量、局部变量的用法1. 文件级
静态变量
2. 全局变量(
外部
变量)使用方法3.
函数
级
静态变量
4.
函数
级局部变量总结 前言 作用域是在任何一种程序语言中都不可忽视的概念,只有清楚地知道每种变量的作用域,了解它们在什么时候被创建和释放,才能完成
一个
正确的算法。本文将用简洁的逻辑,介绍C语言中基本的作用域概念和常用的存储类标识,希望能帮助大家理清
静态变量
、
外部
c语言
静态变量
和静态
函数
static C语言 C语言程序可以看成由一系列
外部
对象构成,这些
外部
对象可能是变量或
函数
。而内部变量是指定义在
函数
内部的
函数
参数及变量。
外部
变量定义在
函数
之外,因此可以在许多
函数
中使用。由于C语言不允许在
一个
函数
中定义其它
函数
,因此
函数
本身只能是“
外部
的”。 由于C语言代码是以文件为单位来组织的,在
一个
源程序所有源文件中,
一个
外部
变量或
函数
只能在某个文件中定义一次...
c语言中
静态变量
和静态
函数
1. static 变量
静态变量
的类型 说明符是static。
静态变量
当然是属于静态存储方式,但是属于静态存储方式的量不一定就是
静态变量
。 例如
外部
变量虽属于静态 存储方式,但不一定是
静态变量
,必须由 static加以定义后才能成为静态
外部
变量,或称静态全局变量。 2. 静态局部变量 静态局部变量属于静态存储方式,它具有以下特点: (1)静态局部变量在
函数
内定义 它的生存期为整个源
Linux_Kernel
4,465
社区成员
17,462
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章