搜索
bottom↓
回复: 3

求助:在cvavr 2.0中如何定义全局变量

[复制链接]

出0入0汤圆

发表于 2008-7-27 13:24:06 | 显示全部楼层 |阅读模式
在CVAVR V2.0中如果一个工程下有多个文件,不知道如何定义全局变量,在帮助文档中如下写到:

当创建一个包含多个文件的项目时,以下规则是必须被尊守的
*  仅仅是 .c 文件能被加入到项目文件列表中。

*    olny .c files must be added to the project’s Files list
*    there’s no need to #include the .C files from the Files list as they will be automatically linked
*    data type definitions and function declarations must be placed in header .H files,that will be #include –ed as necessary in the .c files
*    global variables declarations must be placed in the .C files where necessary
*    there’s no need to declare global variables , that are not static, in header .H because if these files will be #include –ed more than once, the compiler will issue errors about variable redeclarations.
//*    全局变量声明必须被放在指定的 .c 文件。


不知最后一条“全局变量声明必须被放在指定的 .c 文件”是什么意思,怎么样才能定义全局变量。
谢谢!

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2008-7-27 14:00:13 | 显示全部楼层
//a.c
int g_var1;//定义自己的全局变量
extern int g_var2;// 声明在外部的全局变量(in B.C)
void fa()
{
    g_var1 = 1;
    g_var2 = 2;
}



//b.c
int g_var2;//定义自己的全局变量
extern int g_var1;// 声明在外部的全局变量(in A.C)

void fb()
{
    g_var1 = 1;
    g_var2 = 2;
}

//c.c

extern int g_var1;//声明外部全局变量(in a.c)
extern int g_var2;//声明外部全局变量(in b.c)


当然,更好的办法是写个头文件,把声明写在里面,用到的.c 就include 它。

出0入0汤圆

 楼主| 发表于 2008-7-27 15:06:14 | 显示全部楼层
哦 ,谢谢,但是好像是不能放在头文件里面。

出0入0汤圆

发表于 2008-7-28 14:27:21 | 显示全部楼层
定义不是不能放在头文件里,只是头文件被多次include时,就形成多次重复定义出错。

所以,通常定义放在各自的.C文件中,在.h文件中为类型声明。

如果在某个.c中定义一个全局变量(不是函数内定义的变量),而在其它的.c中也使用,那么应该在.h文件中声明为extern。但定义只能有一次。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-29 10:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表