Chinaunix首页 | 论坛 | 博客
  • 博客访问: 138336
  • 博文数量: 27
  • 博客积分: 681
  • 博客等级: 上士
  • 技术积分: 257
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 16:07
文章分类

全部博文(27)

文章存档

2012年(8)

2011年(16)

2010年(3)

分类: C/C++

2011-08-22 15:20:55

在c中,要想在函数内部改变参数的值并被调用函数获悉则必须以指针为参数或者用全局变量。不过,宏也可以有类似的效果, 一例如下:

#include
#define set_if(a, b) do {if((a) > (b)) a = b; } while (0);

int main()
{
  
  int i = 5;
  set_if(i, 3);
  printf("i = %d\n", i);
  
  return 0;
}

这个在小程序中或许不被注意到,但在大程序中稍不留意就会出错,可谓是一个大陷阱。还是尽量少用。
阅读(1669) | 评论(0) | 转发(0) |
0

上一篇:c/c++只读变量的修改

下一篇:first

给主人留下些什么吧!~~