C语言指针问题.pdfVIP

  • 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:

文档评论(0)

1亿VIP精品文档

相关文档