- 3
- 0
- 约1.44万字
- 约 5页
- 2017-08-26 发布于河南
- 举报
C 语言中一个指针传递问题的分析
C 语言中一个指针传递问题的分析
李 云
Email: yunli.sharing@
Blog:
摘要
指针在 C 语言中扮演着极为重要的角色,它的存在为 C 语言提供了极大的灵活性,当然,不少
问题也是由指针所引起的(双刃剑)。本文通过分析一个由指针传递所引起的错误,从而使得我们更
加重视指针在编程中的传递问题。
关键词
C 语言 指针传递
缩略语
LSB Least Significant Byte 最低有效字节
MCI Management Control Interface 管理控制接口
MSB Most Significant Byte 最高有效字节
1 问题的提出
指针因为灵活使得我们在编程时有意识的利用这一特性,从而使得我们的设计也更加
的灵活,如函数指针等等。在很多情况下,我们需要从被调用函数返回结果。这可以通过
两种方法来实现,一是通过函数的返回值,二是通过将指针作为参数传递给被调用函数。
图 1.1 就是一个例子。
00001: S32 mci_module_id_from_name(S8* name, U16* module_id)
00002: {
00003: mci_module_t *module;
00004: U16 index = 0;
00005:
00006: if(name == NULL || module_id == NULL)
00007: return ERR_MCI_INV_PRARAM;
00008:
00009: for(;index = g_mci_last_module_id; index ++)
00010: {
00011: module = g_mci_module_array[index];
00012:
00013: if(module == NULL)
00014: continue;
00015:
00016: if(strcmp(module-name, name) == 0)
00017: {
00018: *module_id = index;
█ 1
C 语言中一个指针传递问题的分析
00019: return 0;
00020: }
00021: }
00022:
00023: return ERR_MCI_MOD_NOT_EXIST;
00024: }
图 1.1 采用指针传递获取返回结果的示例函数
在图 1.1 中需要关心的是第18行,这一行将找到的MCI模块的ID通过指针传递的方法,
将其返回给调用者。图 1.2是使用图 1.1 的mci_module_id_from_name函数的一个例子程
序。
00026: int foo(char* name)
00027: {
00028: U32 module_id = 0;
00029:
00030:
您可能关注的文档
最近下载
- 《我的世界》诉《迷你世界》二审判决书.pdf VIP
- 等比数列说课市名师优质课比赛一等奖市公开课获奖课件.pptx VIP
- 中韩家庭伦理剧对比分析.doc VIP
- 2026-2030中国锌溴电池行业市场发展趋势与前景展望战略分析研究报告.docx
- 2025年等比数列说课课件.pdf VIP
- 短剧演员合同模板(3篇).docx VIP
- 2025年贵州省情省况核心知识点考核复习题库(含答案).docx
- 良品铺子股份有限公司成本控制问题分析.doc VIP
- JB∕T 11164-2021 吊钩抛丸清理机 技术条件.pdf
- 中国专家共识解读:内分泌性高血压继发性高血压院前与急诊诊治指南(2025版)PPT课件.pptx VIP
原创力文档

文档评论(0)