主要是不承认我的功能

时间:2014-04-21 02:47:46

标签: c string qsort

#include <stdio.h>
#include <stdlib.h>

void reverse(char* lines[], int count)
{
    for (int i = count-1; i >= 0; i--)
    {
            printf("%s", lines[i]);
    }
}

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "sortutil.h"
#include "reverse.h"


int getarray(char *lines[]);
void printarray(char *lines[], int max);

int main(int argc, char* argv[])
{
    char* arr[100];
    int numlines = getarray(arr);
    printf("There are %d lines\n", numlines);
    printarray(arr, numlines);


    for (int i = 1; i < argc;  i++)
    {
            if (strcmp(argv[i], "-s") == 0)
            {
                    sortutil(arr);
                    printarray(arr, numlines);
            }
            if (strcmp(argv[i], "-r") == 0)
            {
                    reverse(arr, numlines);
                    printarray(arr, numlines);
            }

    }
}

int getarray(char *lines[])
{
    int i = 0;
    char *text = (char *)malloc(200);
    while (fgets(text, 200, stdin) != NULL)
    {
        lines[i] = text;
        i++;
        text = (char *)malloc(200);
    }
    return i;
}

void printarray(char *lines[], int max)
{
    for (int i = 0; i < max; i++)
    {
        printf("%s\n\n", lines[i]);
    }
}

当我编译main函数时,它告诉我有一个未定义的引用'reverse'。我做#include "reverse.h"所以看到反向功能应该没问题。我错过了什么

1 个答案:

答案 0 :(得分:2)

你错过了实施。您定义了原型,但缺少函数体本身。它位于一个单独的文件中,您需要告诉链接器它。编译main.cc时 - 将其他文件添加到命令行。