lans0625 发表于 2024-12-14 13:33:28

在main函数和中断函数里都可见的变量应该怎样定义?

<table>
<thead>
<tr>
<th>我想定义这样一个变量:在timer0中断函数里改变这个变量的值,在main函数又可以读取这个变量的值,这种变量应该怎样定义呢?<br/>我把这个变量定义在STC8G_H_Timer.h里不行。。。。。。</th>
</tr>
</thead>
</table>

DebugLab 发表于 2024-12-14 13:39:35

全局变量

lans0625 发表于 2024-12-14 13:40:19

DebugLab 发表于 2024-12-14 13:39
全局变量

在什么地方定义它?

DebugLab 发表于 2024-12-14 13:42:57

lans0625 发表于 2024-12-14 13:40
在什么地方定义它?


如图
函数外的是全局变量
函数内的是局部变量

xxkj2010 发表于 2024-12-14 14:31:17

<p>这是c语言最基础的</p>

王昱顺 发表于 2024-12-14 14:33:33

<h4>你说的这个是<strong>跨文件定义的全局变量</strong></h4>
<p>具体操作是:<br />
有两个.c文件,分别是 <code>main.c</code> 和 <code>timer.c</code> 。他们共同引用了同一个.h文件 <code>timer.h</code></p>
<ol>
<li>如果在 <code>timer.c</code>定义了一个 <code>char a=0;</code>变量,想要在timer.c文件中引用。</li>
<li>就需要在 <code>timer.h</code>中使用 <code>extern char a;//.h文件中的定义不可以赋值,只能声明</code></li>
<li>这下再在 <code>timer.c</code>中,直接使用 <code>a=100;</code>也没有问题了,就达到了跨文件定义全局变量的功能。</li>
</ol>
<blockquote>
<p>需要注意的是:原定义和extern的定义都只需要出现一起,如果有更多的.c文件需要使用这个变量,只需要引用对应的.h文件即可。不能再次重复定义,否则会出现重复定义的错误</p>
</blockquote>

496649247 发表于 2024-12-15 18:38:11

<p><img alt="shuai" class="emoji" src="https://www.stcaimcu.com/static/image/smiley/default/shuai.gif" title="shuai" /></p>
页: [1]
查看完整版本: 在main函数和中断函数里都可见的变量应该怎样定义?