【问题标题】:Function not declared in this scope未在此范围内声明的函数
【发布时间】:2014-04-28 03:07:58
【问题描述】:

我不知道如何声明这个函数。

错误: 在函数'int main(int, char**)中。
第 25 行第 16 列 [错误] 'histogram' 未在此范围内声明

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 99
#define M 99

int main(int argc, char *argv[])
{
    int a,i,j,count=0;
    char x[N][M];


    for(i=0;i<N;i++) {
        printf("input word,\n input ****end for exit: ");
        scanf("%s", x[i]);
        a=strcmp(x[i], "****end");
        if(a==0) break;
        count++;
    }
    for (i=0;i<count;i++){
        printf("%s\t", x[i]);

    }

    histogram(x);

}

void histogram(char[N][M]){
    int i,j,count;
    char x[N][M];
     for (j=0;j<count;j++){
     for(i=0; i<strlen(x[j]) ;i++)
     printf("*");
     printf("\n");
    }    
}

【问题讨论】:

  • 为什么人们反对我?这是个愚蠢的问题吗?
  • 如果你已经完成了一个快速的 google,你可以解决这个问题。

标签: c


【解决方案1】:

在 C 中使用函数之前需要声明它们。要么将直方图的定义移到 main 之上,要么添加

void histogram(char[N][M]);

到文件的顶部。

【讨论】:

  • 酷,别忘了把它也勾选为已接受。另外,为了将来参考,添加到文件顶部的简短内容称为“函数原型”
【解决方案2】:

您需要在使用之前定义该函数。对于较大的程序,拥有一个头文件通常会有所帮助,尽管单个函数不需要。只需放置一个

void histogram(char[N][M]);

在 MAIN 之前的文件顶部。如果你继续添加东西,我建议使用头文件。

【讨论】:

    猜你喜欢
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多