#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"
所以看到反向功能应该没问题。我错过了什么
答案 0 :(得分:2)
你错过了实施。您定义了原型,但缺少函数体本身。它位于一个单独的文件中,您需要告诉链接器它。编译main.cc时 - 将其他文件添加到命令行。