加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 函数参数

发布时间:2020-12-16 06:46:56 所属栏目:百科 来源:网络整理
导读:我不明白为什么这段代码有效. int f(int,int);int main(){ f(12,21); return 0;}int f(int,int b){ return 0;} 我怎样才能在函数f(…)中使用第一个arg? 解决方法 参数名称不是函数签名的一部分,只是它的名称和参数的类型. 因此,完全合法的不是命名您的参数.
我不明白为什么这段代码有效.

int f(int,int);

int main()
{
    f(12,21);
    return 0;
}

int f(int,int b)
{
    return 0;
}

我怎样才能在函数f(…)中使用第一个arg?

解决方法

参数名称不是函数签名的一部分,只是它的名称和参数的类型.

因此,完全合法的不是命名您的参数.但是,您无法使用它们. (当然,除非你做一些黑客攻击)

一些黑客攻击:注意 – 不是平台独立,不是标准保证,而是有趣:)

void foo (int x,int,int z)
{
   int* pz = &z;
   int y = *(--pz);
   cout << x << " " << y << " " << z;
}

int main()
{
    foo(2,3,4);
    // prints "2 3 4"
}

这适用于Win7上的MSVS 2008.代码取决于如何在函数参数堆栈上推送参数.

在生产代码中,您应该为所有参数使用名称,包括在声明中,并使它们尽可能具有描述性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读