”Calloc在Keil编译

G

Guest

Guest
嗨,

任何人都可以帮助这一计划波纹管我...

change it to int *Ary;)

这一计划得到了一些在KEIL编译器的警告
, 但在VC 的编译器可以工作(但 实体数据的
int *叉,
更改为int *叉;)警告显示:

警告:模块名称不是唯一的
模块中:C:\凯尔\ C51的\ LIB \ C51s.LIB(CALLOC)

警告:解析的外部符号
符号:_CALLOC
模块:calloc.obj(CALLOC)

警告:提到在解析的外部
符号:_CALLOC
模块:calloc.obj(CALLOC)

代码:

#include <stdlib.h>
#包括<stdio.h>

#包括“reg52.h”无效tst_calloc(const廉政大小)



廉政实体数据*叉;

廉政商S = 2,3例;阿雷= calloc(大小,sizeof(*进制));如果(!叉)



返回;

)阿雷[虏] = Ñ;/ /免费(叉);

)无效的主要(无效)



而(1)



tst_calloc(100);

))
 
您的代码似乎是好的。我试图编译它
, 一切都已经确定。只有两个警告L16号“多余的部分,用于覆盖进程忽略了”。
唯一使我不明白是为什么不是“calloc(大小,sizeof(廉政))”。

西蒙兹:严格来说,“如果(叉==空)”会更好
, 如果考虑到C规范,以在空可以是任何(零值仅是最常见的情况)。

聚苯硫醚:对不起
, 错误输入

 
嗨,

在calloc(大小,sizeof(廉政))和calloc(大小,sizeof(*阿雷))都是正确的,但sizeof(*叉)更好
, 因为如果你有一天改变阿雷从int *到更大或更小的类型
, 如双*,然后sizeof(*叉)仍然是正确的。

所以,如果你有任何想法如何忽略警告?请让我看看你的代码..

能否请您解释这是什么免费(叉);?在什么情况下
, 我们需要付出的...

什么是灵??

谢谢。

 
嗨,

你的理由“calloc(大小,sizeof(*阿雷))”是聪明。我从来没有想到的可能性不喜欢这样的东西在我的代码。也许我不相信我的C尽可能多的编译器做。我要学习和练习更多...

“”请让我看看你的代码..
我只是复制 粘贴到uVision您的代码。这是posible编译-链接-调试。分为两部分
, 忽视了覆盖过程可以安全地忽略。我不知道,你为什么有这样的非忽略警告。你的C51S.LIB intacted?也许,你可以直接插入到您的项目CALLOC.C(见的C51 \ LIB)和将解决您的烦恼。>> Can you please explain what is this free(Ary) 这很容易。当您从堆分配一些内存(的malloc,calloc,...),你应该返回回当你willl不使用它了。如果没有,自由的内存将被耗尽
, 在很短的时间,因为每次调用tst_calloc()将分配新的共同国家评估200家时
, 将丢失处理器完成tst_calloc()函数(阿雷这只是本地的指针字节tst_calloc内()和因此
, 这将是“销毁”,在tst_calloc结束())。
嵌入式软件以外的代码没有自由- () -是坏
, 但很普遍实行,因为当程序完成其所有分配的内存返回给系统自动操作系统本身。在嵌入式世界的程序没有完成,有这样想法,有多少XRAM是你的MCU,你会知道有多少的tst_calloc()将被执行按预期时间。

“”什么是灵??
没有什么特别。我的意思是改正的PS,我在那里做一些打字错误发布发布Scriptum。但是
, 公告板系统藏裸消息这个话是假的我。

 
变更声明

calloc(大小,(廉政)sizeof(*叉))

 

Welcome to EDABoard.com

Sponsor

Back
Top