完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
嗨,朋友们,请你们解释一下我如何使用全局变量?我使用XC8编译器。例如:我不知道如何从子程序传输更多的变量。我尝试使用领域,而不是成功。我认为必须简单地通过子程序影响任何全局变量,但我不知道正确的语法。我在另一个编译器中看到任何例子,但是语法不同。非常感谢!!
|
|
相关推荐
19个回答
|
|
|
你的问题还不清楚。代码显示正确使用全局变量。因为X、Y和Z没有定义,所以它不会编译。
|
|
|
|
|
|
是的,还有什么问题,比如:
|
|
|
|
|
|
嗨,这些X,Y,Z只是解释的例子。它们只能是子程序中的内部变量。我不知道如何调用子程序和如何改变全局变量BZ这个子程序。嗯,我会写一个正确的例子:
|
|
|
|
|
|
你的例子是对的,我不知道问题是什么。
|
|
|
|
|
|
嗯,例如:Mc.CDS1302.C。
|
|
|
|
|
|
嗯,在此代码中,您将更改var的“本地副本”,而不是全局副本。C不通过引用传递参数,而仅通过值传递参数。你可以使用指针来做这件事。
|
|
|
|
|
|
您正在四处跳转,试图将全局变量与函数参数混合。这是一个带有参数的函数,这些值只传递给函数。void.lize_date(int day,int.,int.){day=8;.=3;.=2016;}使用如下所示:.lize_date(8,32016);这是一个带有参数的函数,值是ponter ovoid.lize_date(int*day,int*.,int*.){day=8;*.=3;*.=2016;}使用如下所示:.lize_date(&day,&.,&.);没有函数只知道我想要什么变量。基本C,没有特别的东西。你需要一本教科书。不要在8位CPU中使用int。你将使用额外的RAM和额外的弗拉赫。
|
|
|
|
|
|
当然,我是初学者。所以我将代码改为:并且调用子例程:但是我得到错误代码:ds1302.c:119:error:(1098)变量“_.lize_date”的冲突声明(main.c:36)
|
|
|
|
|
|
在调用它之前,您必须定义或声明“SalealZeId日期”。
|
|
|
|
|
|
您可能使这个过程过于复杂,函数(您称之为“子例程”)可以直接读取/写入全局变量的值,不必向全局变量传递指针(尽管在某些情况下可能有用)。事实上,在您作为示例展示的简单示例中,函数可以非常简单:这是由于变量的全局范围(日、月、年),如果变量是在任何函数之外定义的。您可能希望阅读XC8编译器用户指南中关于变量和范围的部分。错误是函数的两个定义的结果。如果没有函数原型,编译器在代码中遇到函数时(调用),就会对函数作出假设,然后当它试图编译ds1302.c文件中的代码时,就会得到一个不同的定义。EDIT:对不起,Dario,在我发布之前没有看到您的答案。
|
|
|
|
|
|
是的,你的逻辑和完美的后续
|
|
|
|
|
|
但是当我在函数之外定义变量时,这个函数是坏的。编译器说变量没有定义-未定义的标识符。我可以通过返回变量来构造一个函数,它给我一个结果,一个值;我不知道如何获得更多的结果,更多的价值从一个功能:
|
|
|
|
|
|
这个函数很好。这没有什么不对的。这就是你的出发点。如果函数在代码中调用的位置之后,函数将需要一个原型。这些是非常基本的C问题。你需要一本教科书或一本参考书。你到底想做什么?
|
|
|
|
|
|
正如NKurzman试图告诉你们的:(1)这些是基本的C问题。答案不属于XC8。[ 2 ]你似乎在追寻错误的问题。与函数相同的文件中的全局变量将起作用,所以这是另一个错误。当您只发布代码片段时,很难提供帮助,并且不显示您得到的确切错误消息。
|
|
|
|
|
|
大家好,谢谢大家。我有一本关于微芯片C语言的书。有很多例子,但是缺少一些基本结构,例如指针。所以我买了一些新的C书,我开始理解它是如何工作的以及它是如何制作的。
|
|
|
|
|
|
获得第二版的C语言程序设计语言。http://www.亚马逊/编程语言BRAN-W-KNNHIAN/DP/0131103628/REF= SRY1L1?IE=UTF8&QID=1457628844和SR=8-1;关键词= C+编程+K%26R
|
|
|
|
|
|
…或者C书:http://出版物,gbDist.CO.UK/CyBooo/Lt:Edg≫不能编辑以前的POST而没有访问拒绝消息。:(
|
|
|
|
|
|
真正的问题(我很惊讶,没有其他人知道)是调用者和被调用者在不同的编译单元(即文件)中。除非添加外部声明,“全局”变量在ds1302.c中是不可见的。
|
|
|
|
|
|
确实,但还不清楚它们是完整的文件,而不仅仅是片段。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 06:34 , Processed in 1.078306 second(s), Total 108, Slave 91 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3459