请教一个函数之间传值的问题

3661512 2004-04-20 12:36:04
在C语言函数学之间传值应该怎么做,比如在C++里,可以通过&宏来做,例如两个C++函数:

bool CreateNode(LPEVENTNODE &p, int hour, int min, int second, TCHAR* s)
{
if( NULL != p)
return false;
p = malloc(sizeof(EVENTNODE));
p->iHour = hour;
p->iMin = min;
p->iSecond = second;
lstrcpy(p->szConten, s);
p->next = NULL;
return true;
}

bool AddListNode(EVENTLIST &L, LPEVENTNODE p)
{
if( NULL == p)
return false;
LPEVENTNODE temp = NULL;
if(NULL == L.head )
L.head = p;
else
{
temp = L.head;
while (NULL != temp->next )
temp = temp->next;
temp->next = p;
}
L.size += 1;
return true;
}

这样函数CreateNode里定义的p在函数AddListNode里不会被初试化,可以使用CreateNode里p的值,C语言如何实现类似功能呢? 请举例说明,谢谢~
...全文
111 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouqingyuan 2004-04-20
  • 打赏
  • 举报
回复
楼主,你的代码那样写,可是你下面说的“这样函数CreateNode里定义的p在函数AddListNode里不会被初试化,可以使用CreateNode里p的值,C语言如何实现类似功能呢? 请举例说明,谢谢~”
却让人有点莫名其妙!!
zhouqingyuan 2004-04-20
  • 打赏
  • 举报
回复
首先&这个符号不是宏,表示引用。
其次,在C里面要传递值,可以通过指针来做的。
cngdzhang 2004-04-20
  • 打赏
  • 举报
回复
值传递:

int i=10;

void change(int n)
{
n=100;
}

change(i);
i还是等于10,而不是100

传地址:

int i=10;

void change(int *n)
{
*n=100;
}

change(&i);
i等于100,而不是10
3661512 2004-04-20
  • 打赏
  • 举报
回复
多谢指点,那我这段代码应该如何改呢?
庄鱼 2004-04-20
  • 打赏
  • 举报
回复
漏主队概念不清楚,所谓宏是以#define方式定义的变量或者是函数、结构、混合嵌套体
宏不是操作符,而是提交给编译器的一种处理方法;
&是C++里的引用操作符,表示下面所使用的变量仅仅是个别名,实际上还是那个变量本身,而不是一个新的变量副本。
内容概要:本文档为成都科洛威尔科技有限公司生产的MIL-1394B仿真板卡的API函数使用手册,详细介绍了该板卡在Windows和Linux环境下进行MIL-1394B/AS5643总线协议仿真和测试所需的API函数、数据结构、使用流程及例程。板卡支持CC(控制计算机)、RN(远程节点)和BM(总线监控)三种工作模式,提供丰富的函数用于设备管理、节点控制、消息收发、故障注入、中断处理等功能,并涵盖数据包格式、发送接收流程、错误检测机制等关键技术细节。手册还提供了函数调用示例和典型应用场景,帮助开发者快速掌握板卡的开发与调试。; 适合人群:从事航空电子、嵌入式系统或工业自动化领域,具备C/C++编程基础并熟悉总线通信协议的1-3年工作经验的软硬件研发工程师。; 使用场景及目标:①在复杂总线环境中实现高精度数据仿真与测试;②开发基于MIL-1394B协议的通信系统;③进行消息收发控制、时序偏移管理、错误注入测试及中断响应处理等高级功能验证;④通过API调用实现对板卡工作模式、数据流、状态监测的全面控制。; 阅读建议:建议结合配套的demo示例程序进行实践,重点理解各函数的调用时序与参数配置逻辑,尤其关注STOF时序控制、消息发送模式、错误注入机制等核心功能的实现原理。使用前需仔细阅读“基本使用流程”与“附录”部分,确保正确配置硬件环境与通信参数。

70,038

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧