首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C语言简介:函数声明

C语言简介:函数声明
EN

Stack Overflow用户
提问于 2013-04-18 05:08:28
回答 2查看 133关注 0票数 2

我想在ANSI C中声明一个在我的代码中使用的函数。在main()中使用它之后,我可以定义这个函数吗?例如,我写的一个绝对值函数:谁能告诉我它是不是声音?

代码语言:javascript
运行
复制
#include <stdio.h>

int main()
{
    double value1 = -5;
    printf("%lf",
           abs(value1));
}

double abs(double number)
{
    if (number < 0) {
        (number * (-1) = number);
    }
    return number;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-18 05:10:41

你需要修复几件事:

代码语言:javascript
运行
复制
#include <stdio.h>

double abs(double number); // <<< 1. prototype here

int main()
{
    double value1 = -5;

    printf("%lf",
           abs(value1));
}

double abs(double number)
{
    if (number < 0) {
        number = number * -1.0; // <<< 2. fix here
    }
    return number;
}

  1. abs函数需要一个原型,以便编译器在调用它之前知道它的函数签名。您的表达式
  2. number its -to-front
票数 5
EN

Stack Overflow用户

发布于 2013-04-18 05:54:28

函数必须至少在使用前声明,最好使用原型语法(指定参数的数量和类型以及返回类型)。所以最起码,你需要像这样的一行

代码语言:javascript
运行
复制
double abs( double number ); 

main中调用abs之前,在代码中的某个位置。

您还可以在使用函数之前定义该函数:

代码语言:javascript
运行
复制
double abs( double number )
{
   // compute absolute value
}

int main( void )
{
  ...
  x = abs(x);
  ...
}

这实际上是我的偏好;同一翻译单元(文件)中的所有内容都应该在使用之前进行定义。这样,您就不必担心保持声明和定义的同步。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16070299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档