gpt4 book ai didi

c - 函数内部的函数声明——为什么?

转载 作者:太空狗 更新时间:2023-10-29 16:25:10 26 4
gpt4 key购买 nike

我正在阅读“C 语言编程”这本书,并在第 10 章中找到了这样一个示例:

#include <stdio.h>

void test (int  *int_pointer)
{
     *int_pointer = 100;
}

int main (void)
{
     void test (int  *int_pointer);
     int  i = 50, *p = &i;

     printf ("Before the call to test i = %i\n", i);

     test (p);
     printf ("After the call to test i = %i\n", i);

     return 0;
}

我理解这个例子,但我不理解 main 中的 void test (int *int_pointer); 行。为什么我要重新定义test的签名呢?这是惯用的 C 语言吗?

最佳答案

它绝对不是惯用的 C,尽管它是完全有效的(多个声明是可以的,多个定义不是)。这是不必要的,因此没有它代码仍然可以完美运行。

如果有的话,也许作者是故意的

void test (int *int_pointer);

int main (void) {

...

}

如果函数定义放在 main () 之后。

关于c - 函数内部的函数声明——为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29746768/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com