单片机C语言模块化编程时,可以定义一个全局变量供所有文件使用吗?

单片机C语言模块化编程时,可以定义一个全局变量供所有文件使用吗?如果可以的话从哪里定义与声明呢?谢谢!!

第1个回答  2014-08-06
c文件定义 int g_ival = 0;

别的文件里面用 extern int g_ival;申明一下就可以用了。本回答被提问者采纳

单片机C程序模块化的写法,用sbit定义位变量的时候写在写哪个位置?全局...
这个应该根据程序的情况来定,你只有一个源文件的话,当然写在C里就可以了。全局变量一般写在程序的最前面,局部变量写在每个函数里。比如这个例子:include <stdio.h> include <math.h> include <intrins.h> include <absacc.h> include <string.h> include "LCD_12864.h"sbit RESET = P3^3;u...

为什么在模块化C语言中,都是只包含头文件#include “xxx.c ”,很少用...
全局变量在整个工程中都是可见的。如果在LCD.c中定义了一个全局变量(int a;),在main.c文件中,使用extern定义(extern int a;)就可以使用LCD.c中定义了一个全局变量了。通过extern编译器就知道,main.c中的这个全局变量是在外部定义的。关于题目include的问题,我大胆猜测一下你问的。include不仅可以...

单片机C语言模块化编程时一个.c文件中定义的特殊位sbit dula=P3^1...
你好!单独定义一个头文件,在用到的文件内,引用这个头文件

51单片机模块化,中断服务函数(在main.c中)所提供的值,能不能被其他.c...
跨文件、跨模块的全局变量引用,引用方在声明该全局变量\/函数时,需要在前面加上extern关键字,这样编译器才会知道“哦,这个名字在这个文件不一定有声明,要把所有文件编译了也许才能找到”。

单片机 外部变量 引用
"函数里" 定义的是局部变量,不能 extern 的 得 “拿”出来,放到函数体外,做全局变量。在函数体内即使你 加 static 也不行 因为 static 限制变量只能在本模块使用 --- 这个是很有思想的搞法, 封装!

关于单片机 模块化编程的 问题
可以,但是加了头文件有几点好处:首先模块化更清晰;通过头文件申明需要对外提供调用的函数,比你在其他C文件里面用extern 申明要方便。举个例子,现在有main.c,a.c,b.c三个C文件,当你在main.c需要用到的a.c里的函数,且函数很多,好几十个,你需要在main.c写好几十个extern申明的函数语句。

用单片机C语言模块化设计,使用全局变量太多,data不够用怎么办?
首先,你用的什么单片机?现在的很多单片机,已经集成了外部RAM,没有必要你自己再扩RAM了,你查一下你使用的单片机手册,应该已经外扩RAM了。据我所知道的51系列单片机,STC的最少外扩256B,通常外扩1024B,现在又出来外扩4096B的 中颖的、华帮的,最少也是一样256B- 1024B。但是有一种例外,就...

c语言模块化程序设计
1.模块化编程是指将一个庞大的程序划分为若干个功能独立的模块,对各个模块进行独立开发,然后再将这些模块统一合并为一个完整的程序。这是C语言面向过程的编程方法,可以缩短开发周期,提高程序的可读性和可维护性。2.在单片机程序里,程序比较小或者功能比较简单的时候,我们不需要采用模块化编程,但是,...

单片机汇编语言的几个疑问
可以用EQU伪指令对其定义,程序体中使用。同样,这一点C语言要好的多,至少不需要去分配寄存器了。还有一个最容易出错的地方,就是关于标志位C:比如CJNE指令,它的判断是会影响C标志位的,如果程序后面有对C标志位判断的语句又没有考虑这种情况,问题极难查。很多人包括我自己会忽略这种细节。这类问题...

c语言中如何实现模块化?
C语言中用函数来实现程序模块。模块化程序设计是将一个大的任务分解成若干个小任务,再将小任务分解成更小的任务,直到每一个任务都只完成一个独立功能。这样的每个任务都叫做模块,C语言中模块是用函数来实现的。借助函数来实现程序模块化,把你想实现的功能用函数来实现,不同功能的就用不同的函数来...

相似回答