无法从C编程语言第2版第29页编译示例代码
无法编译第29页上的代码,C编程语言,第2版 我将代码中的“getline”改为“getline”,以使其正常工作无法从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[]);
我们能做些什么使程序编译而不改变它 作者是如何编译代码的 代码如下:
#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对其进行更改。