文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>内联函数、静态变量

内联函数、静态变量

时间:2010-09-06  来源:fishmwei

// 内联函数 静态变量
#include <stdio.h>

static int c = 0;

_inline void prints(int b, int *d);

int main(void)
{
    static int b, d;

    b = 0;
    d = 0;
    prints(b, &d);
    prints(b, &d);
    prints(b, &d);
    
    return 0;
}
_inline void prints(int b,int *d)
{
    static int a;
    int i;

    i = 0;
    a++;
    (*(&b))++;
    c++;
    (*d)++;
    i++;

    printf("a = %d b = %d c = %d d = %d i = %d\n", a, b, c, *d, i);
    
}    
/*
输出结果:
a = 1 b = 1 c = 1 d = 1 i = 1
a = 2 b = 1 c = 2 d = 2 i = 1
a = 3 b = 1 c = 3 d = 3 i = 1
a = 4 b = 1 c = 4 d = 4 i = 1
*/
/*
从中可见,静态变量是在编译阶段就分配了内存。

多次调用内联函数,内联函数中的静态变量一直是用原来的那个地址空间,导致a持续增加。a在程序运行阶段一直存在着,而局部变量i则不然。

说内联函数就是define也不是,看编译器的处理,有时仅当普通函数处理,但有时类似define也不是define,如果直接用函数体内部代码代替函数调用,则会提示a重复定义。


另外 b和d区别仅在于按值传递和取地址传递。

还有一个就是静态变量初始化的话,值必须是确定的。
如: static int s = 12442;
而不能使用不定的值:
如: static int s = func(); func()函数返回一个整数或相关类型。

*/




相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载