无法从C编程语言第2版第29页编译示例代码

无法从C编程语言第2版第29页编译示例代码,c,C,无法编译第29页上的代码,C编程语言,第2版 我将代码中的“getline”改为“getline”,以使其正常工作 我们能做些什么使程序编译而不改变它 作者是如何编译代码的 代码如下: #include <stdio.h> #define MAXLINE 1000 /* maximum input line size */ int GetLine(char line[], int maxline); void copy(char to[], char from[]);

无法编译第29页上的代码,C编程语言,第2版

我将代码中的“getline”改为“getline”,以使其正常工作


我们能做些什么使程序编译而不改变它

作者是如何编译代码的

代码如下:

 #include <stdio.h>
 #define MAXLINE 1000    /* maximum input line size */

 int GetLine(char line[], int maxline);
 void copy(char to[], char from[]);

 /* print longest input line */
 main()
 {
     int len;            /* current line length */
     int max;            /* maximum length seen so far */
     char line[MAXLINE];     /* current input line */
     char longest[MAXLINE];  /* longest line saved here */

     max = 0;
     while ((len = GetLine(line, MAXLINE))> 0)
         if (len> max) {
             max = len;
             copy(longest, line);
         }
     if (max> 0)     /* there was a line */
         printf("%s", longest);
     return 0;
 }

 /* GetLine:  read a line into s, return length */
 int GetLine(char s[], int lim)
 {
     int c, i;

     for (i=0; i<lim-1 && (c=getchar()) !=EOF && c!='\n'; ++i)
         s[i] = c;
     if (c == '\n') {
         s[i] = c;
         ++i;
     }
     s[i] = '\0';
     return i;
 }

 /* copy:  copy 'from' into 'to'; assume to is big enough */
 void copy(char to[], char from[])
 {
     int i;

     i = 0;
     while ((to[i] = from[i]) != '\0')
         ++i;
 }

问题是,所有小写的getline已经变成了一个实际的名称,因此在一个兼容POSIX的程序中不能使用这个名称,其中包括:出于好奇,作者在写这本书时使用了什么编译器?@LittlePony这本书没有告诉你吗?@WeatherVane在第6页,你会发现“cc hello.c”。但是它没有提供足够的信息。@LittlePony这本书的前言、导言和附录告诉了你什么?@WeatherVane:这本书没有这个名字的前锋。扫描附录A参考手册的前言、第一版前言、导言、第一章第一节入门和第一节导言,除了提及Unix和ANSI C之外,没有发现使用编译器的任何规范。其他附录似乎与标题标准库无关,更改摘要。你只是在猜测那里会有一些信息吗?这似乎没有什么帮助。main已过时,因为。我们能做些什么使程序在不改变它的情况下编译?->只使用标准C库编译,不使用扩展。你用的是什么C编译器?选择了哪些选项?无法编译代码->发布收到的错误消息。哦,我想我得到了解决方案:在阅读了本书的前言后,我编译了代码,但没有使用cc-ansi对其进行更改。